【注意事项】
1、实验步骤中以“$”开头的命令表示在 ubuntu 环境下执行
$ cd ~
$ mkdir -p Linux_4412/toolchain
$ cd Linux_4412/toolchain/
$ tar xvf gcc-4.6.4.tar.xz
将交叉编译工具链添加到全局环境变量使其全局可用
$ cd ~
$ vi .bashrc
export PATH=$PATH:/home/linux/Linux_4412/toolchain/gcc-4.6.4/bin/
注:每个人 ubuntu 所使用的用户名可能不同,所以家目录的路径可能有差异,这里根据自己的实际情况进行设置
$ source ~/.bashrc
$ arm-none-linux-gnueabi-gcc -v
有以下信息打印则表示安装成功
注:若使用的是 ubuntu 16.04 或更高的版本(64 位 ubuntu),需要安装 32 位库
$ sudo apt-get install lib32z1 lib32ncurses5
和gcc一样,只是前缀不同,命令不用全拼用tap键能可以自动补齐
原因:用电脑查看开发板的情况,例如ls命令
以下以SecureCRT为例,需要其他的终端请看对应文件夹内容
双击‘scrt804-x64’开始安装
2. 单击“Next”
勾选对应选项,然后单击“Next”
单击“Next”
使用默认路径(记住该路径便于之后破解使用),然后单击“Install”开始安装
8. 如图所示,去掉默认的勾选项然后单击“Finish”完成安装
右击以管理员身份运行‘keygen’破解软件
单击“确定”
单击“确定”
15. 先不要关闭破解软件,打开“我的电脑”,进入到步骤 7 中显示的安装路径下,然后双击运行‘SecureCRT.exe’
如图将破解软件中相关信息复制到弹出的对话框的对应位置中,然后单击“下一步”
单击“完成”
关闭对话框即可
打开‘我的电脑’,进入到步骤 7 的安装路径然后右击‘SecureCRT.exe’将其发送到桌面快捷方式,方便后续使用
单击“安装”开始安装
单击“确定”完成安装
安装完成后关闭窗口即可
将 USB 转串口线插在电脑的 USB 接口
右击“我的电脑”选择“管理”
注:使用不同的 USB 口端口号不一样(有可能是 COM3/COM4/COM5…)
*程序下载说明*
如下图所示,调整拨码开关的位置,将开发板设置成 SD 卡启动模式
在弹出的对话框中单击“设备管理器”,然后单击“端口(COM 和 LPT)”左侧下拉条,查看 CH340 使用的端口号(插在不同的 USB 口上端口号不同)
双击运行“SecureCRT”
在弹出的对话框中设置连接属性,协议选择使用“Serial”(串口)连接,端口选择 CH340在设备管理器中显示的端口,波特率选择“115200”,其他选项使用默认即可,设置完成后单击“Connect”即可连接开发板与 SecureCRT 终端
注:第一次设置完成以后再打开可直接选择使用该连接,无需重复设置
如图所示,进入终端界面后若显示该标志则表示连接成功
打开开发板电源,终端界面会显示如下相关信息(不同的开发板显示的信息可能不同),然后马上按下回车键(开发板上电之后可能会显示下图所示的倒计时信息,倒计时结束后开发板会启动 Linux 系统,现在开发板还没有安装 Linux 系统,所以在倒计时结束之前按下回车键使其停留在 uboot)使界面停留在 uboot
如图所示,在 uboot 界面下输入“loadb 40008000”命令(表示要将程序到下载到内存中的 0x40008000 地址)
单击“Transfer”,然后选择“Send Kermit…”(即使用 Send Kermit…协议下载程序)
注 1:若要重新下载程序,需要先将开发板电源关闭,然后重复步骤 8~12
注 2:以上步骤是将程序下载到了开发板的内存,断电之后程序不会保存
注 3:若步骤 8 中没有任何信息显示,可尝试调整拨码开关使用 EMMC 启动
CPU本身是不能直接控制硬件的,硬件一般是由其对应的控制器来控制, SOC中将各个硬件控制器的寄存器映射到了CPU地址空间中的一段范围,这样CPU就可以通过读写寄存器来间接控制硬件
注:这里的寄存器在SOC中但在CPU之外,有地址,访问方式 与内存一样,常用于控制硬件
在一个处理器中,一般会将Flash、RAM、寄存器等存储设备分别映射到寻址空间中的不同地址段,我们将这个映射关系成为这个处理器的地址映射表
1.简述交叉编译器和普通编译器的本质区别是什么
交叉编译器和普通编译器的本质区别在于它们所编译的目标平台不同。普通编译器是针对本地平台进行编译的,它生成的可执行文件是在本地平台上运行的。而交叉编译器则是针对不同的目标平台进行编译的,它生成的可执行文件是在目标平台上运行的。
2.简述ARM处理器中的寄存器(如PC、LR、SP)与硬件控制器中的寄存器的本质区别是什么
ARM处理器中的寄存器和硬件控制器中的寄存器的本质区别在于它们所保存的信息的不同。ARM处理器中的寄存器用于支持指令执行和程序运行,而硬件控制器中的寄存器用于控制硬件工作和设备管理。