系统移植

(一)应用层开发和嵌入式底层开发的区别

1》嵌入式是什么?

官方:嵌入式是以应用为中心,以计算机技术为基础,软硬件可剪裁的计算机系统。

嵌入式系统的特点:成本,体积,可靠性,功耗都有严格要求。

解读:

1,计算机系统

2,针对某个应用的,也就是通常所说的“专用的”

说白了,就是针对某个应用的计算机系统

2》应用层开发和嵌入式底层开发的区别
Text
1
2
3
4
5
编程思路:
编译:gcc 运行
hello.c ----------------> hello(可执行文件) -----------> ./hello
| | x86
C库:比如:printf 链接C库

inux内核开发——驱动

Text
1
2
3
4
5
6
编程思路: 
(交叉编译器---可以把程序编程成指定平台的程序 ------> ./hello ARM)
编译:交叉编译器 加载
hello_drv.c ------------------------>hello_drv.ko --------------> insmod hello_drv.ko
| | |
linux内核源码 和内核源码一起编译 内核模块 将驱动加载到系统(开发板)中

(二)开发板介绍

​ STM32MP157A 是基于 Cortex-A7 32bit RISC核心加 Cortex-M4 32bit RISC 核心的高性能双核心处理器,最高工作频率为 800MHz。Cortex-A7 处理器为每个 CPU 内置一个 32 kbyte L1 指令缓存,一个 32 kbyte L1 数据缓存为每个 CPU 内置一个 256 kbyte 2 级缓存。同时 Cortex-A7 处理器是一个低功耗的应用处理器,旨在为高端可穿戴设备以及其他低功耗嵌入式和消费应用提供丰富的性能。它提供了比 Cortex-A5 多20%的单线程性能。

(三)linux系统的芯片的启动模式

1》单片机是怎么启动的?

STM32单片机,通常在MDK,IAR,集成IDE上编写程序,可以直接烧写到硬件单片机上内部flash中,使用起来是非常方便且简单的。因为一般单片机的程序不会超过2MB,单片机的内部flash也不会超过8MB。

2》linux系统的芯片的启动模式

​ 1)Linux系统很大,Linux系统镜像一般情况下都能达到几十,上百M。如果功能很强大,很可能就上GB了。因此Linux芯片,需要借助外部flash存放它是的镜像。

​ 2)能够存放镜像的外部flash:SD卡,EMMC,Nand flash,NOR flash ,SPI flash 等。所以当我们将Linux系统做好以后,要将它烧写到这些外部flash中去。

​ 3)不同的半导体厂商会提供相应的烧写工具

​ 4)一款芯片有可能会同时支持多种flash启动