3.1.关于交叉编译
(1)两种开发模式:非嵌入式开发:A类机编写源代码,然后编译得到可执行程序,然后发布给A类机运行(譬如windows下桌面程序的开发流程就是典型的非嵌入式开发模式)。嵌入式开发:A类机编写源代码,然后编译得到可执行程序,发布给B类机运行(譬如说开发路由器软件,一般在A类机桌面电脑上编写源码并编译,然后交由B类机运行)。
(2)嵌入式开发的CPU比较简单,本身无法搭建开发环境,有些甚至连操作系统都没有。交叉编译可以用高性能机器为低性能机器开发软件(包括裸机程序、系统级和应用级软件)。
(3)交叉编译必须有专门的交叉编译工具链。由于可执行程序不能本地运行调试,因此必须配合一定手段(专用调试器、JTAG调试器、USB下载、串口下载、SD启动、网络共享等)将可执行程序加载到目标嵌入式设备上运行及调试。
3.2.CPU的设计原理
(1)CPU可分为三部分:寄存器(CPU里面的快速临时内存,用来存储从外部读取到CPU中数据等)、控制器(控制CPU的运行,譬如说读取指令代码,进行解码,然后执行)、运算器(进行数学运算,譬如说加、减法、乘法、左移、右移等)。
(2)构成计算机系统的三要素:CPU+Flash(相当于电脑的硬盘,用来存储程序等数据的)+DDR。Flash和DDR都通过各自的总线接口和CPU连接。程序平时在Flash中存放,它需要到内存中运行,CPU会先将Flash中的程序读到寄存器里面来,然后通过寄存器将程序放到DDR中运行。
(3)现在越来越多的外设都跑到C