目录
一、开发板硬件资源介绍
FS4412是集成ARM Cortex-A9四核CPU的Exynos4412
二、初识电路原理图
电路原理图元器件的查找:
搜索丝印
查找目录
网络标号:例如DD33v
电路图中网络标号相同的节点在电气上是连接在一起的
三、交叉开发环境搭建
1.在ubuntu下安装交叉编译工具链
2.在windows下安装SecureCRT(终端)
3.在windows下安装USB转串口驱动
4.下载测试程序
1.ubuntu下安装交叉编译工具链
创建“Linux_4412/toolchain”目录用于存放交叉编译工具链
tar xvf gcc-4.6.4.tar.xz:解压
将交叉编译工具链添加到全局环境变量使其全局可用:
vi .bashrc
在 .bashrc 最后一行加入export PATH=$PATH:/home/linux/linux_4412/toolchain/gcc-4.6.4/bin/
重启配置文件使配置生效
$ source ~/.bashrc
$ arm-none-linux-gnueabi-gcc -v
使用此交叉编译器编译需要按照此命令编译,
通过file查看查看编译后得到的文件的文件属性,编译后的文件只能在ARM和x86上使用
2.在windows下安装SecureCRT(终端)
通过此终端借助电脑与开发板交互
3.在windows下安装USB转串口驱动
4.下载测试程序
三、地址映射表
1.硬件控制原理
ARM指令集:1.数据控制指令(在CPU内部运算,不控制硬件);2.跳转指令(CPU内部运算,不控制硬件);3.Load/Srore(控制硬件);4.状态寄存器传送指令(CPU内部运算,不控制硬件);5.软中断指令(CPU内部运算,不控制硬件);6.协处理器指令(一般执行特定运算,不控制硬件)。 只有Load\Store
指令能读写硬件的寄存器。
每个硬件都在SOC(System on chip)(系统芯片)中有对应的控制电路,而这些控制电路中都有寄存器,CPU靠读写这些寄存器(读取或写入数据)控制这些硬件。
32位的cpu只能读取4G大小的地址空间,所以需要将(SOC)各个硬件控制器的寄存器映射到CPU地址空间中的一段范围。
//物理管脚是设计者对应布控的电路,规定了哪些值触发什么功能,所以根据给的管脚地址,可以直接控制到硬件,给1,0这些值到对应控制位上,为了能代码里控制,就用映射的方式能设置这个寄存器上值来控制。
RAM和ROM的区别
【寄存器作用】_寄存器offset_曦瑞的博客-CSDN博客
总结:原理:CPU本身是不能直接控制硬件的,硬件一般是由其对应的控制器来控制, SOC中将各个硬件控制器的寄存器映射到了CPU地址空间中的一段范围,这样CPU就可以通过读写寄存器来间接控制硬件
注:这里的寄存器在SOC中但在CPU之外,有地址,访问方式与内存一样,常用于控制硬件
在一个处理器中,一般会将Flash、RAM、寄存器等存储设备分别映射到寻址空间中的不同地址段,我们将这个映射关系成为这个处理器的地址映射表