新唐的nuc980/nuc972的开发3-官方源码编译

上一节中bsp已经安装,交叉环境已经搭建,理应就可以正常的编写上层的应用程序啦。

但是系统启动次序是- uboot-> kernel内核 ->挂载文件系统 ->上层应用程序
下面是bsp安装后的文件:

因此本章节,将讲解 uboot-> kernel内核 ->挂载文件系统 等的官方源码编译

有一个问题:新唐官方在github,gitee,gitlab都有源代码,但是很多事网速和墙的原因,访问可以会出现问题,可以参考
国内gitee:OpenNuvoton - OpenNuvoton

github:
https://github.com/OpenNuvoton/MPU-Family

  • 官方源码编译

3.1编译Uboot

进入uboot源码目录     cd u-boot-2016.11/

在目录的configs文件下有很多的配置文件。   ls configs/nuc980*

查到与980相关的配置有三个。

随便选一个,开始编译。

make nuc980_defconfig

make

编译结束,会生成u-boot.bin 及 spl/u-boot-spl.bin

3.2编译Linux Kernel

BSP安装之后会获取到官方的linux kernel。

进入源码目录:cd linux-4.4.y/

查看配置文件  : ls arch/arm/configs/nuc980*

选一个进行配置:make nuc980_defconfig

现在还不能直接编译,会报错找不到文件系统。

到之前下载bsp目录下,将rootfs拷贝到kernel源码同级目录。

官方配置的ramdisk镜像,文件系统会和kernel一起被打包。同时在kernel同级目录创建image文件夹 : mkdir ../image

安装软件: sudo apt-get install u-boot-tools

编译内核镜像 :make uImage

编译完成,生成镜像文件

3.3 烧录准备-安装虚拟串口的驱动

首先安装驱动,....安装完成

这个时候插上USB,应该可以正常识别出一个设备

一定要把这一步实现, 不管使用哪种方式启动,下载镜像始终是要USB的。

3.4 启动方式

NUC980支持4种启动方式

目前板子上有SD卡、SPI FLASH以及NAND FLASH的接口。

先打开原理图。

首先看原理图,在板子上有两个拨码开关。

连接着上图所示的IO口

数据手册上:

 

启动整理如下:

 

主要关注的是PG0和PG1,上电的不同方式决定了四种启动形式

然后比较重要的是PG3和PG5。PG3管的是看门狗,PG5管的是调试串口。

那么作为一个开发者,PG3和PG5应该都是在ON的位置

 3.5USB启动方式

阅读USB启动方式的程序流程图,可以知道,数据被下载到了DRAM里面,这种方式应该是用于调试,一旦断电就会丢失数据。

连接PUTTY,使能串口,方便调试

打开终端,成功设置为USB启动,串口终端将有类似 如下的打印:

 

 接下来,确定USB正常工作;打开烧录软件;连接设备;

随便选个bin文件过来,放心刷,反正是在dram里面,掉电就没了的

 

看终端信息
 

3.6 NAND启动方式

之前编译了uboot和kernel,现在可以使用那些固件了

首先把之前编译的内容拿到桌面

一共是四个文件,设置启动方式为nand,通过串口终端确认如下:

 打开烧录软件

烧录u-boot-spl.bin

烧录uboot.bin

烧录kernel

文件系统的烧录可以根据自己的需要进行(需要启动后mount),

烧录完成 ,然后复位,启动

没有跑起来,不要紧,看调试信息,有个时间输出,可以证明烧录是正常的
找个正常的镜像,再来一次

正常启动,这里还有个配置过程,先不管,后面再说


3.7 Linux内核启动

前面已经将镜像烧录进了nand
但是没有启动,因为还有一个配置过程(没有环境变量的参数文件)
以NAND启动方式,进入putty

从nand里面读取数据到DRAM运行
nand read 0x7FC0 0x200000 0x800000

启动
bootm 0x7FC0

就 正常进入

这种方式 时不常用的;缺乏env和文件系统的实现,后续再跟进讲解!

正常编译好之后,如何打包,并且进行烧录,可以参考如下教程:https://blog.csdn.net/xiaoxilang/article/details/133675267

最后可以实现一键烧录,才是便于量产的方式!!!! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/5610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

刷代码随想录有感(51):从中序和后序前序和中序构造二叉树

中后题干: 第一步:如果数组大小为零的话,说明是空节点了。 第二步:如果不为空,那么取后序数组最后一个元素作为节点元素。 第三步:找到后序数组最后一个元素在中序数组的位置,作为切割点 第四…

Large Language Models for Test-Free Fault Localization

基本信息 这是24年2月发表在ICSE 24会议(CCF A)的一篇文章,作者团队来自美国卡内基梅隆大学。 博客创建者 武松 作者 Aidan Z.H. Yang,Claire Le Goues,Ruben Martins,Vincent J. Hellendoorn 标签 …

启明云端2.4寸屏+ESP32-S3+小型智能调速电动家用除草机案例 触控三档调速,能显示电压故障码

今天给大家分享个启明云端2.4寸屏ESP32-S3小型智能调速电动家用除草机案例,国外有草坪文化,这个机器能智能触控三档调速,带屏能显示电压故障码,数显档位(3档最大),触控屏,长按3秒就能…

使用 langchain 连接 通义千问 并用 fastApi 开放接口

安装 langchain 方法 https://www.cnblogs.com/hailexuexi/p/18087602 安装 fastapi fastapi 是一个用于构建高性能 Web 应用的 Python 框架,它提供了简洁、高效的 API 开发体验。 pip install fastapi 安装 uvicorn uvicorn 是一个用于运行 FastAPI 应用的服务…

C语言学习/复习37--进阶总结与题目练习

一、题目练习 1. 循环与无符号char的取值范围 注意事项:0~255 -128~127 char类的取值范围看做循环图 2.ASCLL值与循环 3.按位操作与bit位 4 .结构体的大小 注意事项:结构体嵌套结构体的大小计算 5.循环条件 6.数据类型与原反补码 7.指针访问字符串数…

商城系统推荐,如何找到一款可靠的商城系统?

如今,电商系统成为商家必不可少的营销工具,其系统在金融、外贸、零售等行业领域应用广泛。那么,作为初试水的企业又没有挑选电商系统的经验,如何找到拥有全功能、全渠道、可靠的网上商城系统呢? 我们可以先按电商系统…

【Vue 2.x】学习vue之三路由

文章目录 Vue三路由第十章1、vue中的路由vue的应用分为a、多页面应用b、单页面应用 2、路由的基本应用1、基础2、使用3、加载 3、vue组件的分类1、普通组件2、路由组件 4、路由的嵌套5、路由传递Query参数1、拼接参数传递2、路由传递对象 6、简化路由1、命名路由 7、parms传递参…

力扣82-链表、迭代 的思考

题目解读 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 两个示范 思考 返回链表:返回更新链表后的头结点; 更新链表:判断重复元素,改变指针…

Day56|动态规划part16:583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结篇

583. 两个字符串的删除操作 我的方法,先求出两者的最长公共子序列长度,再用两个字符串的长度相减就是两者分别要做操作的步数: class Solution {public int minDistance(String word1, String word2) {int[][] dp new int[word1.length() …

模型剪枝-Network Slimming算法分析

代码见文末 论文地址:Learning Efficient Convolutional Networks through Network Slimming ICCV 2017 Open Access Repository 1.概述 由于边缘设备的限制,在模型的部署中经常受到模型大小、运行内存、计算量的限制。之前的方法要么只能解决其中一个…

设计模式之模板模式TemplatePattern(五)

一、模板模式介绍 模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern), 在一个抽象类公开定义了执行它的方法的模板。它的子类可以更需要重写方法实现,但可以成为典型类中…

Noisy:一款功能强大的DNS和HTTPS网络流量噪声生成工具

关于Noisy Noisy是一款功能强大的DNS和HTTP/S网络流量噪音生成工具,该工具基于Python开发,可以帮助广大研究人员在进行常规网络浏览时,在后台生成随机的HTTP/DNS网络流量噪声,并以此来提升网络通信数据的安全性和隐蔽性。 支持的…

第7篇:创建Nios II工程之控制LED<二>

Q:上一期我们完成了Quartus硬件工程部分,本期我们创建Nios II软件工程这部分。 A:创建完BSP和Nios II Application之后,在source文件main.c中添加LED控制代码:system.h头文件包含了Platform Designer系统中IP的硬件信…

【C语言】文件操作(万字解读超详细解析)

最好的时光,在路上;最好的生活,在别处。独自上路去看看这个世界,你终将与最好的自己相遇。💓💓💓 目录 • ✨说在前面 🍋知识点一:什么是文件? • 🌰1.程序…

【分布式通信】NPKit,NCCL的Profiling工具

NPKit介绍 NPKit (Networking Profiling Kit) is a profiling framework designed for popular collective communication libraries (CCLs), including Microsoft MSCCL, NVIDIA NCCL and AMD RCCL. It enables users to insert customized profiling events into different C…

STM32 HAL库F103系列之IIC实验

IIC总线协议 IIC总线协议介绍 IIC:Inter Integrated Circuit,集成电路总线,是一种同步 串行 半双工通信总线。 总线就是传输数据通道 协议就是传输数据的规则 IIC总线结构图 ① 由时钟线SCL和数据线SDA组成,并且都接上拉电阻…

[华为OD] C卷 5G网络 现需要在某城市进行5G网络建设,已经选取N个地点设置5G基站 200

题目 现需要在某城市进行5G网络建设,已经选取N个地点设置5G基站,编号固定为1到N,接 下来需要各个基站之间使用光纤进行连接以确保基站能互联互通,不同基站之间架设光纤的成 本各不相同,且有些节点之间已经存在光纤相连&#…

python项目入门新手攻略

最近工作需要接手了代码量比较大的python开发的项目,平时写python不多,记录一下如何熟悉项目。 分析调用流程-pycallgraph 因为代码量比较大,所以希望通过工具生成代码调用流程,因此用到了pycallgraph。 pycallgraph&#xff0…

【AIGC调研系列】InternVL开源多模态模型与GPT-4V的性能对比

InternVL和GPT-4V都是多模态模型,但它们在性能、参数量以及应用领域上有所不同。 InternVL是一个开源的多模态模型,其参数量为60亿,覆盖了图像/视频分类、检索等关键任务,并在32个视觉-语言基准测试中展现了卓越性能[2]。InternV…

linux操作系统,进入救援模式的方法

准备好操作系统的 ISO 文件 或 刻录好的U盘启动盘 登录服务器 BMC 管理界面,选择镜像之后,点击 “启动媒体”(如果使用U盘启动盘 则跳过这一步骤,直接看下一步) 重启服务器,开机界面一般按键盘 “Delete”…