新唐的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

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

相关推荐

  1. Arteris noc和arm nic-400 有什么区别?

    2024-05-02 06:14:05       9 阅读
  2. NCC开发记录

    2024-05-02 06:14:05       42 阅读
  3. Nordic ncs安装编译报错问题记录

    2024-05-02 06:14:05       9 阅读
  4. nc用法

    2024-05-02 06:14:05       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-02 06:14:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-02 06:14:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-02 06:14:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-02 06:14:05       20 阅读

热门阅读

  1. LLMNR协议、MDNS协议、NBNS协议

    2024-05-02 06:14:05       12 阅读
  2. Matlab与Python之间的通信和同步

    2024-05-02 06:14:05       12 阅读
  3. 【vscode debug ts文件-配置参考】

    2024-05-02 06:14:05       13 阅读