DAY11. FS4412开发环境搭建
如果出现图片无法查看可能是网络问题,我用的GitHub+图床保存的图片,可以参考我另外一篇文章GitHub的使用方法含网络问题解决
GitHub使用教程含网络问题_github加速器_肉丸子QAQ的博客-CSDN博客
1. 开发板硬件资源介绍
![image-20230802104453997](https://cdn.jsdelivr.net/gh/ybm2002329/mdlmage/202308022100148.png)
2. 交叉开发环境搭建
1. 实验环境
- ubuntu 14.04 发行版
【注意事项】
1、实验步骤中以“$”开头的命令表示在 ubuntu 环境下执行
2. 安装步骤
1. 安装交叉编译工具链
- 在 ubuntu 下打开一个终端并进入到家目录
$ cd ~
- 在家目录下创建“Linux_4412/toolchain”目录用于存放交叉编译工具链
$ mkdir -p Linux_4412/toolchain
- 进入到该目录下
$ cd Linux_4412/toolchain/
![]() |
- 将资料中“1.交叉编译工具链”下的 gcc-4.6.4.tar 拷贝到该目录下,解压“gcc-4.6.4.tar.xz”
$ tar xvf gcc-4.6.4.tar.xz
将交叉编译工具链添加到全局环境变量使其全局可用
- 回到家目录
$ cd ~
- 打开家目录下的配置文件“.bashrc”
$ 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键能可以自动补齐
2. 在Windows下安装终端(SecureCRT)
原因:用电脑查看开发板的情况,例如ls命令
以下以SecureCRT为例,需要其他的终端请看对应文件夹内容
- 安装步骤
![]() |
双击‘scrt804-x64’开始安装
2. 单击“Next”
![]() |
勾选对应选项,然后单击“Next”
- 单击“Next”**
![]() |
单击“Next”
- 单击“Next”
![]() |
使用默认路径(记住该路径便于之后破解使用),然后单击“Install”开始安装
8. 如图所示,去掉默认的勾选项然后单击“Finish”完成安装
![]() |
![]() |
右击以管理员身份运行‘keygen’破解软件
- 单击“Patch”
![]() |
- 在弹出的对话框中进入到步骤 7 显示的安装路径下,然后选择‘SecureCRT.exe’,然后单击“打开”
![]() |
单击“确定”
- 在弹出的对话框中选择‘LicenseHelper’,然后单击“打开”
![]() |
单击“确定”
15. 先不要关闭破解软件,打开“我的电脑”,进入到步骤 7 中显示的安装路径下,然后双击运行‘SecureCRT.exe’
- 单击“OK”
![]() |
- 单击“Enter License Data…”
- 单击“下一步”
-
单击“Enter License Manually”
-
如图将破解软件中相关信息复制到弹出的对话框的对应位置中,然后单击“下一步”
![]() |
- 如图将破解软件中相关信息复制到弹出的对话框的对应位置中,然后单击“下一步”
![]() |
![]() |
如图将破解软件中相关信息复制到弹出的对话框的对应位置中,然后单击“下一步”
![]() |
单击“完成”
- 单击“OK”
- 如图所示勾选对应的选项,然后单击“OK”完成破解
![]() |
![]() |
关闭对话框即可
![]() |
打开‘我的电脑’,进入到步骤 7 的安装路径然后右击‘SecureCRT.exe’将其发送到桌面快捷方式,方便后续使用
3. 在Windows下安装USB转串口
- 双击‘CH341SER’
![]() |
![]() |
单击“安装”开始安装
![]() |
单击“确定”完成安装
![]() |
安装完成后关闭窗口即可
![]() |
将 USB 转串口线插在电脑的 USB 接口
![]() |
右击“我的电脑”选择“管理”
- 在弹出的对话框中单击“设备管理器”,然后单击“端口(COM 和** LPT)”左侧的下拉条查看是否有 CH340 设备,若有则表示驱动安装成功
![]() |
注:使用不同的 USB 口端口号不一样(有可能是 COM3/COM4/COM5…)
4. 测试程序下载
*程序下载说明*
- 如图所示,先检查核心板是否正确安插在底板上(检查是否有松动,安插方向是否正确),确保 SD 卡已正确插入卡槽(检查安插是否有松动)。然后将 USB 转串口线的一端插到电脑的 USB 接口,另一端插到开发板对应的端口(中间位置),然后使用电源线给开发板供电
![]() |
如下图所示,调整拨码开关的位置,将开发板设置成 SD 卡启动模式
- 右击“我的电脑”选择“管理”
![]() |
![]() |
在弹出的对话框中单击“设备管理器”,然后单击“端口(COM 和 LPT)”左侧下拉条,查看 CH340 使用的端口号(插在不同的 USB 口上端口号不同)
![]() |
双击运行“SecureCRT”
![]() |
在弹出的对话框中设置连接属性,协议选择使用“Serial”(串口)连接,端口选择 CH340在设备管理器中显示的端口,波特率选择“115200”,其他选项使用默认即可,设置完成后单击“Connect”即可连接开发板与 SecureCRT 终端
注:第一次设置完成以后再打开可直接选择使用该连接,无需重复设置
![]() |
如图所示,进入终端界面后若显示该标志则表示连接成功
![]() |
打开开发板电源,终端界面会显示如下相关信息(不同的开发板显示的信息可能不同),然后马上按下回车键(开发板上电之后可能会显示下图所示的倒计时信息,倒计时结束后开发板会启动 Linux 系统,现在开发板还没有安装 Linux 系统,所以在倒计时结束之前按下回车键使其停留在 uboot)使界面停留在 uboot
![]() |
如图所示,在 uboot 界面下输入“loadb 40008000”命令(表示要将程序到下载到内存中的 0x40008000 地址)
![]() |
单击“Transfer”,然后选择“Send Kermit…”(即使用 Send Kermit…协议下载程序)
- 在弹出的对话框中选择资料中提供的测试程序,双击选中,然后单击“OK”
![]() |
- 如图所示,若显示如下内容,则表示程序下载成功
- 在终端输入“go 40008000”命令(即表示跳转到 0x40008000 地址执行程序),程序开始运行,观察开发板上的 LED 是否闪烁
注 1:若要重新下载程序,需要先将开发板电源关闭,然后重复步骤 8~12
注 2:以上步骤是将程序下载到了开发板的内存,断电之后程序不会保存
注 3:若步骤 8 中没有任何信息显示,可尝试调整拨码开关使用 EMMC 启动
![]() |
3. 地址映射表
1. 硬件控制原理
![image-20230802203852868](https://cdn.jsdelivr.net/gh/ybm2002329/mdlmage/202308022100204.png)
- 硬件控制原理
CPU本身是不能直接控制硬件的,硬件一般是由其对应的控制器来控制, SOC中将各个硬件控制器的寄存器映射到了CPU地址空间中的一段范围,这样CPU就可以通过读写寄存器来间接控制硬件
注:这里的寄存器在SOC中但在CPU之外,有地址,访问方式 与内存一样,常用于控制硬件
2. 地址映射表
- 地址映射表
在一个处理器中,一般会将Flash、RAM、寄存器等存储设备分别映射到寻址空间中的不同地址段,我们将这个映射关系成为这个处理器的地址映射表
4. 作业
1.简述交叉编译器和普通编译器的本质区别是什么
交叉编译器和普通编译器的本质区别在于它们所编译的目标平台不同。普通编译器是针对本地平台进行编译的,它生成的可执行文件是在本地平台上运行的。而交叉编译器则是针对不同的目标平台进行编译的,它生成的可执行文件是在目标平台上运行的。
2.简述ARM处理器中的寄存器(如PC、LR、SP)与硬件控制器中的寄存器的本质区别是什么
ARM处理器中的寄存器和硬件控制器中的寄存器的本质区别在于它们所保存的信息的不同。ARM处理器中的寄存器用于支持指令执行和程序运行,而硬件控制器中的寄存器用于控制硬件工作和设备管理。