arm裸机开发篇1:cortex-a7开发环境搭建

华清远见IT开放实验室 华清远见IT开放实验室     2023-01-15     785

关键词:

写在前面:

本文章为《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开发资料\\01-工具软件】的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开发资料\\01-工具软件】的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-06\\01-工具软件\\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-06\\01-工具软件\\Yagarto工具包】目录下的yagarto-tools-20100703-setup.exe进行安装

点击Next

点击Next

点击Next

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

点击Install进行安装

点击Finish,完成安装

  1. 安装JRE

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

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

点击“完成”即完成安装

Eclipse for ARM 安装与使用

选择路径:【资料光盘\\华清远见-FS-MP1A开发资料-2020-11-06\\01-工具软件\\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-06\\02-程序源码\\03-ARM体系结构与接口技术\\Cortex-A7\\c_led】 到 eclipse 工作目录下。

如:C:\\Users\\FSARSIGHT-IOT-01\\Desktop\\eclipse-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-06\\01-工具软件】下载OpenOCD-STM32MP1.zip压缩包。进行解压后,进入bin目录下,按住Shift键,右击鼠标,如图所示

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

Eclipse Debug调试

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

.\\openocd.exe -s .\\scripts\\ -f board\\stm32mp15x_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₤

ok6410[000]搭建裸机开发环境

1、安装交叉工具链arm-linux-gcc-4.3.2先把这个工具复制到rhat系统中【rhel-server-6.3-i386-dvd.iso】解压arm-linux-gcc-4.3.2到一个目录中,然后,配置环境变量 2、编译示例程序编译arm-linux-gcc-g-cled.S链接arm-linux-ld-Tled.lds-oled.elfled.o格式转换... 查看详情

arm裸机开发:c语言点亮led(代码片段)

文章目录ARM裸机开发:C语言点亮LED一、硬件平台:二、汇编搭建C开发环境2.1STM32启动代码2.2I.MUX启动代码三、C语言驱动程序四、实验现象ARM裸机开发:C语言点亮LED一、硬件平台:正点原子I.MX6U阿尔法开发板二、... 查看详情

完整的嵌入式学习路线是怎样的?

...成了几个层次,分层浏览。第一层目录:0.基础预科1.ARM裸机全集2.uboot和linux内核移植3.linux驱动开发4.C语言专题精讲篇5.linux应用编程和网络编程6.阶段项目篇说明:第一层目录中共有6个部分,共同构成了嵌入式核心课程。每个部... 查看详情

1.nrf52832裸机教程--开发环境搭建

I.说明作者:WXP(翱翔云端的鸟)联系方式:328452854@qq.com||13100610853(联系请注明CSDN)申明:个人原创,转载请先经过本人同意!要说的话:个人水平有限,写之前也看过许多大神的博客,不足之处,还请指正!有疑问欢迎大... 查看详情

裸机实验预备---在虚拟机中搭建嵌入式开发环境

搭建嵌入式开发环境的主要工作其实就是在虚拟机中安装好交叉编译工具链。第一步就是选择合适版本的交叉编译工具链。在选择交叉编译工具链版本的时候,应该考虑尽量减少开发过程中由于编译器所产生的一些莫名其妙的问... 查看详情

1.nrf52832裸机教程--开发环境搭建

I.说明作者:WXP(翱翔云端的鸟)联系方式:328452854@qq.com||13100610853(联系请注明CSDN)申明:个人原创,转载请先经过本人同意!要说的话:个人水平有限,写之前也看过许多大神的博客,不足之处,还请指正!有疑问欢迎大... 查看详情

开发环境搭建——交叉编译工具链安装(代码片段)

  使用的I.MX6U-ALPHA开发板是一个Cortex-A7内核的开发板,因此选择arm-linux-gnueabihf   LinaroGCC编译器下载地址如下:1https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/  由于最新版本编译的uboot无法正常运... 查看详情

arm裸机开发:主频与时钟(代码片段)

文章目录ARM裸机开发:主频与时钟一、时钟系统1.1外部时钟电路1.27路PLL时钟源1.3时钟树概览二、时钟配置2.1内核时钟设置2.2PFD时钟设置2.3AHB、IPG和PERCLK根时钟设置三、配置代码ARM裸机开发:主频与时钟本章了解一下IMX的... 查看详情

搭建go开发及调试环境(liteide+goclipse)--windows篇

这里以Windows764位为例,如果是32位环境需安装对应版本程序。 一、安装golang1.2.21.3及1.3.1编译生成的二进制文件,无法使用LiteIDE23.2携带的gdb7.7进行调试。二、安装及配置LiteIDE将liteidex23.2.windows.7z解压到D:即完成安装。 2.1... 查看详情

rk3399驱动开发笔记|01-开发环境搭建(代码片段)

参考教程,官方wiki:http://t.rock-chips.com/wiki.php最近开始着手RK3399的开发,使用TB-RK3399ProD开发板:一、RK3399ProRK3399Pro性能非常强劲,使用双Cortex-A72+四Cortex-A53大小核CPU结构,频率最高1.8GHz。二、烧 查看详情

linux驱动开发学习路线规划

...Linux驱动开发系列:入门Ubuntu知识ARM裸机篇:了解Cortex-A7MPCore架构 查看详情

基础篇.arm架构介绍(代码片段)

...自己的SOC。以ARMv8体系结构为例,ARM公司先后开发出Cortex-A53、Cortex-A55、Cortex-A72、Cortex-A73等多款处理器IP。ARM架构为processor或core的设计提供了基础,通常我们可以将processor或core称为ProcessingElement(PE)。2.ARM授权模式ARM公司... 查看详情

嵌入式arm开发环境搭建

1.安装,配置,启动FTP服务安装FTP:sudoapt-getinstallvsftpd修改vsftpd的配置文件/etc/vsftpd.conf,将下面两行的‘#‘去掉#local_enable=YES#write_enable=YES修改完成后执行以下命令重启此服务sudo/etc/init.d/vsftpdrestart2.安装,配置,启动SSH服务  ... 查看详情

_embedded-system专栏文章导航与优秀笔记整理(2021.08.08更新)

一、ARM裸机篇1、Mculover666博主基于JZ2440板卡的S3C2440裸机开发笔记:S3C2440-裸机篇-01|JZ2440开发板快速上手S3C2440-裸机篇-02|安装和使用arm-linux-gcc交叉编译工具链S3C2440-裸机篇-03|GPIO的使用(点亮LED、按键检测)S3C2440-裸机... 查看详情

exynos4412交叉编译环境搭建(代码片段)

Exynos4412交叉编译环境搭建交叉编译:在PC机(x86平台)上开发程序,在ARM板上运行,提高开发、编译速度。环境:Tiny4412SDK1506开发板需要软件:arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz检测系统是否已经安装有交叉编译环境:#arm-linux-gcc-vba... 查看详情

ui5-学习篇-1-开发工具及环境搭建(代码片段)

...相关站点  SAP官网:https://www.sap.com/china/index.html  SAP开发工具:https://tools.hana.ondemand.com/#sapui5  UI5 Documentation:https://openui5.hana.ondemand.com/#/ 查看详情

嵌入式arm开发环境搭建

...合适的交叉编译工具链    找到与自己目标开发平台(Soc)尽可能相匹配的交叉编译工具链(arm-linux-gcc)    例如:开发S5PV210平台相关的程序就可以用arm-2009q3这个版本,因为三星官方在开发S5pv210时... 查看详情

windows8.1+eclipse搭建hadoop2.7.2本地模式开发环境

下面介绍如何在Windows8.1上搭建hadoop2.7.2的本地模式开发环境,为后期做mapreduce的开发做准备。在搭建开发环境之前,首先选择开发工具,就是大家都很熟悉的Eclipse(本人这次使用的是eclipse4.4.2版本),Eclipse提供了hadoop的插件,... 查看详情