一、开发板硬件资源介绍
嵌入式产品不同场景硬件区别很大。
1、扩展内存,芯片内部集成了一小部分内存,一个扩展内存是256M,4个共1G内存。
2、emmc芯片相当于硬盘,装入了操作系统和应用程序。断电不丢失。
3、电源管理芯片:对开发板各个模块的电源合理管理,保证开发板在正常工作的情况下,功耗最低。
4、USB接口:安装Linux系统后,可以安装USB驱动,可以通过USB接口读写USB设备,比如U盘。
5、USB-OTG接口:mps/mp4(不常用)
6、SD卡:安装Linux系统后,可以安装SD卡驱动,可以通过卡槽读写SD卡的文件
7、TF卡槽:功能同SD卡,区别接口协议不同。
8、K2/K3:机动按键,可以自己编写。
9、拨码开关:emmc启动/SD卡启动/TF启动,什么启动,启动后先执行哪个。
10、红外:接收红外线,可以通过遥控器远程控制开发板。
11、温度传感器:检测温度。
12、电位器:产生模拟的电压信号,AD实验检测信号。
13、camera:摄像头接口,可以实现拍照或摄像头功能。
14、IO1\IO2:可以外接输入输出设备。
15、蜂鸣器:产生警报声音/提示音。
16、JTAG:仿真器,硬件仿真接口。
17、HDMI:高清视频,对外输出高清视频。外界显示器。
18、音频:麦克风、耳机接口。
19、485/CAN总线:差分信号,抗干扰能力强。
20、网口:有线网上网,和电脑之间传输数据。
21、网卡:DM9000。
22、串口:通信,开发板和电脑通信。下载程序。
23、陀螺仪/角速度:检测加速度和角速度传感器。
24、其他用于信号的转化和处理。
使用注意事项:
1、隔绝金属和液体。
2、核心板和底板。
二、初始电路原理图
目标:找到硬件的连接关系
1、电阻:限流、分压
2、电容:使用在电源,是电源更稳定
3、二极管:单向导电性
正极流向负极
4、三极管:模拟电路中功率放大或者作为开关
5、引脚:引脚名字指示引脚作用
6、网络标号:电路图中网络标号相同的节点,在电气上是连接在一起的。
三、交叉开发环境搭建
(一)背景介绍
直接把程序下载到ARM开发板。不需要仿真。
之前开发,写程序-编译程序-执行程序都是在乌版图中,之后开发,写程序-编译程序在乌班图中,执行程序在ARM处理器中。
(二)交叉开发环境搭建
之前的编译器默认编译成x86可以执行的代码,下载编译器,使编译器能够在ARM处理器上执行。
下载好的编译器只能在当前目录使用,因此还要将编译器的目录添加到环境变量中。
1、乌班图默认的编译器只能在Intel处理器上运行
用下载好的交叉编译器编译生成能在ARM处理器上执行的文件
arm-none-linux-gnueabi-gcc
此时ARM上的可执行文件,不能在x86处理器上运行
2、 SecureCRT
安装终端,通过串口线,将命令发给开发板,开发板执行命令,并通过串口线将命令结果传回给开发板。
3、USB转串口驱动
开发板USB接入电脑是没有识别的,因为没有驱动,所以需要安装转串口驱动。
4、下载测试程序
1)连接好硬件
2)打开Tera Term
kermit网络通信协议
go命令执行下载文件
四、地址映射表
CPU内部不用管,通过指令集控制硬件。指令集中的指令相当于接口。
(一)硬件控制
之前学的数据处理指令、跳转指令、状态寄存器传送指令、SWI、协处理器指令,这些都是在CPU内部数据和寄存器操作,不会对硬件产生操作,内存读写指令Load/store可以操作CPU之外的硬件。
Load/store操作硬件
寄存器分专用寄存器、通用寄存器、控制寄存器。在开发板上例如USB、UART硬件上都含有寄存器存储数据,CPU通过STR和LDR读写寄存器控制硬件。
(二)硬件控制原理
ROM断电不丢失。RAM存储变量和数据。RSV没有用的空间
在这里,控制寄存器在SOC内部但不在CPU内部,用STR/LDR方式访问。
通过控制这段内存范围,可以控制网卡。
(三)地址映射表
(附芯片手册)
SOC内部本身没有这段内存,扩展了1G,还有0.5G没有加内存条。0x400008000下载地址,正好是扩展内存的地址。
五、作业
1.简述交叉编译器和普通编译器的本质区别是什么
2.简述ARM处理器中的寄存器(如PC、LR、SP)与硬件控制器中的寄存器的本质区别是什么
1、普通编译器编译后的可执行文件只能在Inter处理器运行,交叉编译器编译后生成可以在ARM编译器上执行的可执行文件。
2、ARM处理器中的寄存器都是CPU内部的寄存器,与控制硬件无关。硬件控制器中的寄存器在SOC但不在CPU内部,CPU通过STR/LDR读写寄存器控制硬件。