WHCSRL 技术网

ARM裸机开发第一章:Cortex-A7开发环境搭建

写在前面:

本文章为《ARM Cortex-A7裸机开发篇》系列中的一篇,全系列总计11篇。笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157开发板)。

针对FS-MP1A开发板,除了Cortex-A7裸机开发篇外,还包括其他多系列教程,包括Cortex-M4开发篇、FreeRTOS篇、Linux基础及应用开发篇、Linux系统移植篇、Linux驱动开发篇、硬件设计篇、人工智能机器视觉篇、Qt应用编程篇、Qt综合项目实战篇等。欢迎关注,更多stm32mp157开发教程及视频,可加技术交流Q群459754978,感谢关注。

FS-MP1A开发板详情介绍:https://item.taobao.com/item.htm?id=622457259672

Cortex-A7开发环境搭建

本章节主要介绍windows下的开发环境搭建。推荐使用win10 64bit系统进行安装。我们将安装以下软件。

  • Xshell 6(免费版)
  • STM32CubeProgrammer

Xshell 6安装

由于在后续的实验中需要使用到串口调试终端和ssh登陆Linux操作系统,因此需要 安装一个 调试工具 ,这里以xshell为例 ,读者也可以根据自己的个人习惯选择。

Xshell 6免费版安装包可以从xshell官方网站https://www.netsarang.com/zh/通过邮件申请免费版本,也可以使用资料光盘中【华清远见-FS-MP1A开发资料1-工具软件】的Xshell-6.0.0197p.exe安装包进行安装。

双击安装包后会先检查当前系统环境,如果系统依赖不满足则会自动安装缺失的部分。

环境安装完成后将会出现如下界面

点击“下一步”

点击“我接收许可协议中的条款”

这里直接点击“下一步”

选择要安装的默认目录后点击“下一步”

点击“安装”

安装完成会出现如下界面

安装完成后第一次启动需要指定一个配置文件默认保存路径,这里一般默认即可。

然后出现如下界面,由于是免费版本所以直接点击“关闭”即可。

随后会弹出如下界面,点击“确定”

至此,xshell 6(免费版),就安装成功了。

STM32CubeProgrammer安装

STM32CubeProgrammer是STMicroelectronics的官方工具,用于在STM32平台上的Flash设备中创建分区并对各个分区进行镜像烧录。

可以使用STM32CubeProgrammer来烧录STM32 MPU板上支持的所以Flash设备。后续 镜像烧录将会用STM32CubeProgrammer工具进行eMMC和SDCsrd的镜像更新。

STM32CubeProgrammer安装包可以从xshell官方网站https://www.st.com/en/development-tools/stm32cubeprog.html通过邮件申请最新版本,也可以使用资料光盘中【华清远见-FS-MP1A开发资料1-工具软件】的en.stm32cubeprog_v2-4-0.zip安装包进行安装。

首先需要将安装包解压,解压完成后得到如下文件。

双击“SetupSTM32CubeProgrammer-2.4.0.exe”允许安装向导。

点击“Next”

点击“Next”

点击“I accept the terms of this license agreement”

这里选择安装路径,笔者可以自行指定。点击Next之后会提示,将要创建一个安装目录。

勾选STM32TrustePackageCreator选项

Next之后会进程序安装。

在安装的过程中会弹出如下界面,安装相关的驱动程序。

点击“下一步”

程序将会自动安装所需的驱动程序,安装完成后会弹出如下界面。

点击“完成”

切换到“STM32CubeProgrammer”界面后点击“Next”,创建桌面快捷键。

安装完成界面

出现上述界面后点击“Done”。至此STM32CubeProgrammer就安装完成了。

CORTEXA7相关工具安装

  1. 安装GCC编译工具

双击【资料光盘华清远见-FS-MP1A开发资料-2020-11-061-工具软件Yagarto工具包】目录下的yagarto-bu-2.21_gcc-4.6.2-c-c++_nl-1.19.0_gdb-7.3.1_eabi_20111119.exe进行安装

点击 Next

继续点击Next

点击Install

点击Next

点击Finish,完成安装

  1. 安装Yagarto工具包

双击【资料光盘华清远见-FS-MP1A开发资料-2020-11-061-工具软件Yagarto工具包】目录下的yagarto-tools-20100703-setup.exe进行安装

点击Next

点击Next

点击Next

选择安装路径,然后点击Next

点击Install进行安装

点击Finish,完成安装

  1. 安装JRE

双击【资料光盘华清远见-FS-MP1A开发资料-2020-11-061-工具软件】目录下的文件jre-6u7-windows-i586-p-s.exe进行安装

点击“接受”,过程可能需要一段时间

点击“完成”即完成安装

Eclipse for ARM 安装与使用

选择路径:【资料光盘华清远见-FS-MP1A开发资料-2020-11-061-工具软件eclipse eclipse-cpp-helios-SR1-win32.zip】文件解压后,然后运行eclipse.exe文件。

Eclipse for ARM是一个标准的窗口应用程序,可以单击程序按钮开始运行,打开后需先指定一个工程存放路径,如图所示。

第一次打开后出现这种界面,点击“workbench”进入工程界面,可以弹出工作界面

创建一个C工程

进入主界面后,选择“File、New、C Project”命令,Eclipse将打开一个标准对话框,输入你新建工程的名字然后单击“Finish”按钮即可创建一个新的工程。

创建成功后,会在工程工作界面中有你创建的工程名,之后添加工程必要文件。

  1. 新建一个Makefile文件

选择“File、New、Other”命令,在弹出的对话框New中的“General”下单击File,然后单击Next,选择所要指定的工程后,在文件名文本框中输入文件名Makefile,然后单击“Finish”按钮。

  1. 新建一个脚本文件

选择“File、New、Other”命令,在弹出的对话框New中的“General”下单击File,然后单击Next,选择所要指定的工程后,在文件名文本框中输入文件名STM32MP1.init,然后单击“Finish”按钮。

  1. 新建一个链接脚本文件

选择“File、New、Other”命令,在弹出的对话框New中的“General”下单击File,然后单击Next,选择所要指定的工程后,在文件名文本框中输入文件名led.lds,然后单击“Finish”按钮。

  1. 新建一个汇编源文件

选择“File、New、Other”命令,在弹出的对话框New中的“General”下单击File,然后单击Next,选择所要指定的工程后,在文件名文本框中输入文件名led_light.S,然后单击“Finish”按钮。

  1. 新建一个main文件

选择“File、New、Other”命令,在弹出的对话框New中的“General”下单击File,然后单击Next,选择所要指定的工程后,在文件名文本框中输入文件名main.c,然后单击“Finish”按钮。

至此工程及所需文件已经基本创建完成,为了能够实现工程的相关功能,还必须在对应文件中添加相应的代码,在这一步时,你可以参考已有工程的文件。

所有文件编译完成后,保存文件,创建好的工程如图所示

点击如下图所示的编译图标进行编译

编译完成后显示结果如图所示,表示编译没有问题

此时工程下所有文件如下

导入一个已有工程

本文提供了相关项目实验源码,在实验中可以直接导入相应工程即可。

1. 打开 打开 Eclipse 开发工具,在Project Explorer 中添加 LED 工程

(注意:工程要放在英文路径下 ,不能有中文路径 )

拷贝【 资料光盘华清远见-FS-MP1A开发资料-2020-11-062-程序源码3-ARM体系结构与接口技术Cortex-A7c_led】 到 eclipse 工作目录下。

如:C:UsersFSARSIGHT-IOT-01Desktopeclipse-example目录。

(注意:如果从光盘介质直接拷贝出来的目录可能会出现文件有只读属性的情况,建议查看文件夹的只读属性是否选中,确保在未勾选的状态下)

如图所示,在 Project Explorer 窗口中右击鼠标,选择“Import…”,如下图所示

选择“Import…”后,出现如下图所示的窗口,选中“Existing Projects Into Workpace”然

后点击“Next”

选择“Next”后出现如下窗口,点击“Browse…”后出现“浏览文件夹”窗口,在“浏览文件

夹”窗口中选中实验“c_led”后点击“确定”

点击“确定”后出现如下窗口,直接点击“Finish”即可。

添加成功后可以在“ Project Explorer ”中看到“c_led”工程成功导入。

工程成功导入后,如暂时不使用该工程时我们可以Close project,下次使用时再Open project(同时只能有一个工程是打开的),该工程相关配置不变。

openOCD使用

由于在后续的实验中需要使用到openOCD调试软件,可以从资料光盘中【华清远见-FS-MP1A开发资料-2020-11-061-工具软件】下载OpenOCD-STM32MP1.zip压缩包。进行解压后,进入bin目录下,按住Shift键,右击鼠标,如图所示

点击“在此处打开Powershell窗口”选项,然后可以出现如下窗口

Eclipse Debug调试

准备完毕,在Eclipse进行Debug调试时,在window PowerShell窗口中输入如下指令

.openocd.exe -s .scripts -f boardstm32mp15x_fsmp1a.cfg

点击回车,显示结果如下

打开Xshell 6软件后,连接MP1,如图所示

此时按一下开发板复位键,在倒计时到0之前按下回车,最终显示界面如下

在Eclipse 中首先进行Debug调试配置,点击

按钮,然后选择“Debug Configurations..”,点击,然后出现如下界面

然后双击“Zylin Embedded debug(Native)”,可以出现所创建的工程,配置如下

在红框内选择所建工程中生成的elf文件

配置完成后点击Apply,然后再点击Debug,会出现如下提示框

点击Yes,然后进入Debug调试界面,如图所示

点击

按钮,程序开始运行,首次会卡住在main处,然后再次点击

按钮,程序全速运行,此时可以发现LED灯正常闪烁。

当点击

按钮后,程序结束运行,如图所示

当退出Debug界面时,选中上图红框中内容,按下Del键删除掉,此一步主要防止出现不知名错误。

另外,在测试时,由于没有关闭看门狗,程序运行32秒后,会自动进行复位。

硬件平台:华清远见FS-MP1A开发板(STM32MP157)

部分开发教程下载:加QQ群459754978,群文件里有。

部分视频课程收看:华清远见研发中心的个人空间_哔哩哔哩_Bilibili

淘宝购买链接:https://item.taobao.com/item.htm?id=622457259672

手机淘宝分享码:复制本行文字打开手淘₤T4FPXn3YYJ2₤

推荐阅读