目录
1 开发板硬件资源介绍
2 初始原理图
3 交叉开发环境搭建
3.1 在ubuntu下安装交叉编译工具链
3.2 在windows下安装SecureCRT
3.3 在windows下安装USB转串口驱动
3.4 下载测试程序
4 硬件控制原理
4.1 地址映射表
4.2 查看数据手册
元器件查找
$ cd ~
$ mkdir -p Linux_4412/toolchain
$ cd Linux_4412/toolchain/
$ tar xvf gcc-4.6.4.tar.xz
$ cd ~
$ vi .bashrc
$ source ~/.bashrc
$ arm-none-linux-gnueabi-gcc -v
$ sudo apt-get install lib32z1 lib32ncurses5
arm 32位
略
略
2. 如下图所示,调整拨码开关的位置,将开发板设置成 SD 卡启动模式
4. 在弹出的对话框中单击“设备管理器”,然后单击“端口(COM 和 LPT)”左侧下拉条,查看 CH340 使用的端口号(插在不同的 USB 口上端口号不同)
5. 双击运行“SecureCRT”
注:第一次设置完成以后再打开可直接选择使用该连接,无需重复设置
10. 单击“Transfer”,然后选择“Send Kermit..”(即使用 Send Kermit..协议下载程序)
11. 在弹出的对话框中选择资料中提供的测试程序,双击选中,然后单击“OK”
12. 如图所示,若显示如下内容,则表示程序下载成功
CPU本身是不能直接控制硬件的,硬件一般是由其对应的控制器来控制, SOC中将各个硬件控制器的寄存器映射到了CPU地址空间中的一段范围,这样CPU就可以通过读写寄存器来间接控制硬件
注:这里的寄存器在SOC中但在CPU之外,有地址,访问方式与内存一样,常用于控制硬件
在一个处理器中,一般会将Flash、RAM、寄存器等存储设备分别映射到寻址空间中的不同地址段,我们将这个映射关系成为这个处理器的地址映射表
如:windows中网卡映射地址
数据手册总共2800页,学会如何快速查阅。看总览,看目录找到需要的资料。
芯片概述
0x00000000-0xFFFFFFFF 32位机器的地址空间,4GB大小。
IROM 三星内部的程序
IRAM 256k内存,可以放变量和堆栈
SFR region 特殊功能寄存器,对硬件控制0x1000_0000-0x1400_000,都是外设寄存器地址空间,另有一张表对应
Memory of Dynamic Memory Controller (DMC)-0 0x4000_0000 -0x8000_00000,开发板扩展了4块内存的地址,最后-0xFFFFFFFF没有使用
1.简述交叉编译器和普通编译器的本质区别是什么
普通编译器在操作系统所在的平台上编译工具,能在本平台运行
交叉编译器在一个平台开发,生成的文件在不同的平台上运行,这种情况主要是目标平台可能是不同的操作系统或者处理器架构。
2.简述ARM处理器中的寄存器(如PC、LR、SP)与硬件控制器中的寄存器的本质区别是什么
PC(程序计数器)寄存器:保存下一条要执行的指令的地址。
LR(链接寄存器)寄存器:用于存储函数调用的返回地址,即函数执行完毕后将返回到哪个地址继续执行。
SP(栈指针)寄存器:用于指向当前栈顶的地址,用于管理函数调用时的局部变量和函数调用栈。