Linux系统 ARM开发板 启动过程

Linux系统 ARM开发板 启动过程,第1张

开发板上电第一步是启动固件,固件是出厂时固化好的,固件的作用是初始化一下基本的 设备,以nand为例,固件irom初始化好sram后,将nand中的前4k的bootloader(一般为uboot)拷贝到sram中,sram再初始化另一些设备比如dram等等,然后运行剩下的bootloader,接下来就是引导linux内核的启动了。bios在开发板相当与irom部分功能和uboot的前4k,内存时钟会在uboot中初始化的。uboot先做一些准备(比如设svc模式,关看门狗、中断、mmu等),然后设置内核参数表,然后跳到内核的地址运行,内核一般是压缩的,需要先解压,入口是stext,是在arch/arm/kernel/vmlinux.lds.S中定义的

虚拟机linux下安装 arm-linux-gcc 编译器

① 获取软件源码包arm-linux-gcc-4.3.2.tgz

② 解压以上文件 按照路径放到 /usr/local/arm/4.3.2(版本号)

③ 向linux声明、注册:

找到配置文件 /etc/profile ,打开profile 在倒数第二行添加以下语句:

PATH=/usr/local/arm/4.3.2(源码包中的一个文件夹—版本号)/bin:$PATH

④ 运行profile文件:

在终端中使用命令:source /etc/profile

⑤ 查看路径:

在终端中使用命令:echo $PATH

若有路径 /usr/local/arm/4.3.2/bin: 表示安装成功

⑥ 编译命令:arm-linux-gcc -o test test.c (gcc编译器中用的是:gcc -o test test.c)

运行命令:./test

首先,无论单片机或者ARM都是属于嵌入式这个概念。

对于ARM来说,移不移植linux要看本身产品需求,ARM7的话,一般不会使用linux。主要看CPU的资源。移植linux系统对于后期功能开发更加方便就是,因为linux帮你封装了各种API与资源的管理。

其实做linux移植不是非常复杂。正常做开发都是二级开发,也就是说CPU厂商提供了基本的SDK包。

从单片机转型做linux,一开始一般做linux驱动吧。创客学院的linux驱动不错做linux驱动,主要是要懂linux框架,上层 *** 作与实际IO接口 *** 作封装了框架而已,基本都是通过注册函数,回调实现而已。我也是做单片机到linux的,转型过来的时候很多都会纠结与上层的 *** 作到实际的寄存器 *** 作,所以先从linux驱动入手在到OS,再到上层应用而已。

linux与ucos-ii 相比的话,linux集成了更多功能吧,比如说视频,音频,或者UI更完善太多了,ucos-ii无法利用更多的系统资源吧。

一个ARM芯片用来裸奔就是浪费资源,总的来说就是为了更好地利用CPU的资源。

不过现在来说android做嵌入式产品将是一个趋势吧(跟人感觉)

好像废话有点多,linux学习的书籍,LDD、ULK、LDK看看,实际开发的时候学的最开,搞个板子,弄个SDK,直接看源码,一个礼拜就可以弄个大概吧,如果只是字符设备 混杂设备那就更简单了。。。 helloworld 哈哈哈


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8728374.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-20
下一篇2023-04-20

发表评论

登录后才能评论

评论列表(0条)

    保存