新唐的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,一经查实,立即删除!

相关文章

Ubuntu Linux完全入门视频教程

Ubuntu Linux完全入门视频教程 UbuntuLinux完全入门视频教程1.rar UbuntuLinux亮全入门视频教程10.ra UbuntuLinux亮全入门视频教程11.ra UbuntuLinux完全入门视频教程12.ra UbuntuLinux亮全入门视频教程13.ra UbuntuLinux完全入门视频教程14.rar UbuntuLinux完全入门视频教程…

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

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

es5中的类和静态方法、继承详解

1、关于es5 es5中的类 // 1、最简单的类function Person() {this.name "姓名";this.age 20;}let p new Person();console.log(p.name);// 2、构造函数和原型链里面增加方法function Person() {this.name "姓名"; // 属性this.age 20;this.run f…

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 标签 …

自制英语听力视频 5.1

breaking news:突发新闻 judge:法官 hush money:封口费 trial:审判 violated:违反 gag order:禁言令 the judge has ruled the former president has violated a gag order:法官裁定前总统违反了禁言…

启明云端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.指针访问字符串数…

react18子组件设置接收默认值和值类型验证

父组件传值 import ChildCom from ./components/ChildCom export default function Person {return(<div><ChildCom name"alan-ben" age{18} score{[98, 97, 100]} /></div>) } 子组件接收并验证类型 import React from react import PropTypes…

CentOS-Stream-9配置网络和web控制台cockpit

vim /etc/NetworkManager/system-connections/ens33.nmconnection&#xff0c;修改autoconnectiontrue自动连接网络&#xff0c;可以自动获取IP地址&#xff0c;或者设置固定IP地址&#xff0c;在[ipv4]下面编辑methodmanual和address1192.168.4.111/24,192.168.4.1和dns223.5.…

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

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

【python】给函数参数和返回值标注类型

目录 &#xff08;1&#xff09;类型标注进化历史 从Python 3.0开始的类型标注 从Python 3.5开始的类型标注库 typing &#xff08;2&#xff09;更细化的类型标注 1.返回一个列表&#xff0c;且列表的元素类型是指定的 2.返回字典类型&#xff0c;键和值都是指定类型 3…

【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传递参…

java钉钉微信qq扫码登录

概述 第三方接口其实比较简单&#xff0c;按照文档来操作即可&#xff0c;代码也就那点&#xff0c;最费时间的反而是在对接系统的账号的申请上&#xff0c;不建议个人申请很麻烦&#xff0c;还是让公司运维申请企业账号。 作为一名合格的开人人员&#xff0c;不仅仅是把第三…

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

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

centos7 宝塔php7安装mongodb扩展

一、下载、解压源码 下载地址&#xff1a;https://pecl.php.net/package/mongodb 1 2 wget -c https://pecl.php.net/get/mongodb-1.5.3.tgz tar -zxvf mongodb-1.5.3.tgz 二、编译安装源码 1 2 3 4 cd mongodb-1.5.3 /www/server/php/70/bin/phpize ./configure --with-p…

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

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

模型剪枝-Network Slimming算法分析

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

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

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

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

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