3.嵌入式开发模式详解

来源:互联网 发布:流程图软件visio 名称 编辑:程序博客网 时间:2024/06/05 03:46

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)现在越来越多的外设都跑到CPU里面去形成SoC了,所以存在两种总线分别为内部总线(速度更快、抗干扰能力强)和外部总线(受限于PCB板的布线,其速度不会太高)。片内外设都是通过内部总线与CPU连接,Flash和DDR一般是通过外部总线和CPU连接(见图1)。


3.3.地址总线和数据总线
(1)CPU通过地址总线寻址,然后通过数据总线与外部设备互换信息。地址总线的位数决定CPU寻址范围;数据总线的位数决定CPU单次通信能交换的信息数量。总线的速度决定CPU和外设互换信息的速度。
(2)CPU的地址总线位数和数据总线可以不同(典型代表就是51单片机,数据总线为8位,地址总线为16位,优先使用char类型定义变量),但是一般都相同。CPU的位数指的是数据总线的位数。
(3)32位CPU寻址的范围是4G,所以最多支持4G内存;数据总线是32位的,所以内存是32位的好,所以编程最好用int类型定义变量。


3.4.Jlink和SD卡等辅助设备
(1)嵌入式开发特点:交叉编译,不便于本机运行调试程序;嵌入式系统需要bootloader来启动,而bootloader必须首先存在于可启动介质中,这个过程需要专用工具;嵌入式系统无法通过纯软件实现单步调试,因此必须借助专用的调试器。
(2)Jlink的作用:下载可执行程序到目标机;在目标机上实现单步调试,便于开发bootloader。
(3)SD卡的作用:作为启动介质。事先用读卡器将SD卡连接到开发机(一般是Windows电脑),通过写卡软件将交叉编译得到的可执行程序镜像烧录到SD卡,然后将SD卡插入嵌入式目标机卡槽,设置正确的启动方式启动,则系统可以从SD卡中烧录的镜像处启动。
(4)USB转串口线的作用:串口本身用来做嵌入式目标机的调试输出,主要目的是用来监视及调试软件。因为现在大部分个人电脑(大部分台式机和几乎全部的笔记本电脑)都未配置DB9串口,因此工作中一般直接使用USB转串口线来连接PC和开发板。
(5)其他开发辅助工具:USB OTG线;DB9串口线;交叉网线。


这里写图片描述


0 0