完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
本文旨在使用makefile管理嵌入式单片机工程,程序编辑器采用VSCODE或其他形式,编译器采用arm-none-eabi-gnu编译器,同时在工程移植支持rtos,采用比较流行的rt-thread,本文借鉴了网络上大量资源,可以算是个整合,仅做开发参考使用。
VSODE的安装 vscode是微软的程序编辑器,插件比较多,对于写代码,调试代码还是能提高效率的:
编译环境的搭建 编译环境可以采用windows加MinGW,同时本地配置ARM GCC交叉编译工具链的方式,但是windows的shell不符合开发习惯,本文不做探讨,采用虚拟机加windows主机方案太重量级,本文探讨wsl+windows的方式搭建开发环境。 需要是win10系统 win10版本至少是2004 主板需要开启虚拟化支持 主板需要开启虚拟化支持 关于wsl2的安装,请参考文章https://blog.csdn.net/dangelzjj/article/details/109267163 1.Ubuntu换源:此步骤请参考文章WSL换源 2.编译器安装:执行 $ sudo apt-get update $ sudo apt-get install libmpc3 $ sudo apt-get install gcc-arm-none-eabi $ sudo apt install make 3.测试下,出现以下内容,正常。 $ sudo apt-get update $ sudo apt-get install libmpc3 $ sudo apt-get install gcc-arm-none-eabi $ sudo apt install make 移植1个GD32工程 移植工程,需要重点关注启动文件, .s汇编文件 .ld链接脚本文件 makefile管理make文件 已经移植好的工程,请参考实例https://gitee.com/lgkgkfg/gd103-gnu-rt-thread 启动文件 启动文件可直接用stmcube生成的文件修改,比如需要用GD32F103的,可以直接修改STM32F103的启动文件。 一般生成的文件不建议直接用,需要修改中断向量表名称,STM32和GD的中断向量名称有差异,但是偏移地址相同。 更多细节请参考实例中的 startup_gd32f103xb.s 链接脚本文件 链接脚本文件可直接用stmcube生成的文件修改,可不做修改。 makefile文件 makefile文件用cube生成的文件做简单修改,因为修改了主芯片类型,同时有增添了rt-thread,需要修改makefile的包含路径、宏定义与启动文件选项,详细还是参考实例Makefile rt-thread移植 rt-thread移植主要完成 bsp,include,libcpu,src几个目录的移植即可,注意,在移植 context_gcc.S文件时需要将此文件重命名为context_gcc.s。 根据目录架构修改makefile。 编译 打开vscode,打开工程。 新建一个终端。 执行 $ bash $ make -j8 会生成一个build文件夹,里面有生成的bin文件。 烧录 烧录可采用segger j-flash烧录,但是此法需要每次都打开更新bin文件,本文采用烧录脚本完成。 新建1个burn文件夹,在里面新建以下两个文件夹。 ├── burn │ ├── download.jlink │ └── jlinkload.bat download.jlink 此文件用用于装载bin文件,以下内容请根据情况修改。 erase loadfile C:UserstaylorDesktopgd103-gcc - only gnubuildgd103.hex 0x08000320 r qc 其中bin的路径需要修改成本机地址。 C:UserstaylorDesktopgd103-gcc - only gnubuildgd103.hex jlinkload.bat 此文件用用于连接jlink,以下内容请根据情况修改。 cd c: cd Program Files (x86)SEGGERJLink .JLink.exe -autoconnect 1 -device GD32F103RC -if swd -speed 1000 -commandfile C:UserstaylorDesktopgd103-gcc - only gnuburndownload.jlink TIMEOUT /T 2 其中以下地址路径请修改成本机地址。 cd Program Files (x86)SEGGERJLink C:UserstaylorDesktopgd103-gcc - only gnuburndownload.jlink qc 新建一个bat脚本,用于windows下调用,放在工程最顶层文件夹,内容如下,命名为 burn.bat。 ./burn/jlinkload.bat 1 下载,直接再新建个终端,在windows下执行即可 .burn.bat |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1627 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1550 浏览 1 评论
984 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
688 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1601 浏览 2 评论
1867浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
650浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
518浏览 3评论
536浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
506浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 14:17 , Processed in 0.763489 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号