[其他ST产品] 开发环境搭建-stm32CubeIDE进行标准库开发

[复制链接]
1656|31
 楼主| 略略u 发表于 2023-12-25 19:09 | 显示全部楼层 |阅读模式
stm32CubeIDE介绍

https://www.stmcu.com.cn/ecosystem/Cube/STM32CubeIDE

stm32CubeIDE下载

点击上面的链接,登录即可下载。

搭建demo工程
  • 新建工作空间
  • 1578165896300f1d5e.png

 楼主| 略略u 发表于 2023-12-25 19:10 | 显示全部楼层
创建一个工程
5085265896310c78f3.png
 楼主| 略略u 发表于 2023-12-25 19:10 | 显示全部楼层
选择芯片-STM32F103C8T6
132356589631c1466e.png
 楼主| 略略u 发表于 2023-12-25 19:10 | 显示全部楼层
点击“Next”
9466065896327d0279.png
 楼主| 略略u 发表于 2023-12-25 19:10 | 显示全部楼层
点击“Finish ”
32632658963355520a.png
 楼主| 略略u 发表于 2023-12-25 19:10 | 显示全部楼层
添加标准库到项目工程文件目录下
9506965896340ac657.png
 楼主| 略略u 发表于 2023-12-25 19:11 | 显示全部楼层
配置工程属性
673026589634c1c804.png
 楼主| 略略u 发表于 2023-12-25 19:11 | 显示全部楼层
按F5刷新工程文件,添加的效果如下:
65346589635cdcf81.png
 楼主| 略略u 发表于 2023-12-25 19:11 | 显示全部楼层
添加标准库头文件路径,直接使用快捷键AlL+Enter调出配置界面,添加头文件路径
3004365896369b9610.png
 楼主| 略略u 发表于 2023-12-25 19:11 | 显示全部楼层
添加后如下:
604686589637503aff.png
 楼主| 略略u 发表于 2023-12-25 19:11 | 显示全部楼层
注意:头文件如果是灰色,则说明添加失败。
 楼主| 略略u 发表于 2023-12-25 19:12 | 显示全部楼层
添加标准库的源文件到工程中 3356465896387d701e.png
 楼主| 略略u 发表于 2023-12-25 19:13 | 显示全部楼层
添加全局宏定义用于工程属性
95172658963ba800ce.png
 楼主| 略略u 发表于 2023-12-25 19:13 | 显示全部楼层
删除重复的启动文件
删除的是除GCC编译器之外的启动文件
 楼主| 略略u 发表于 2023-12-25 19:13 | 显示全部楼层
修改内核文件 core_cm3.c文件
  1. uint32_t __STREXB(uint8_t value, uint8_t *addr)
  2. {
  3.    uint32_t result=0;
  4.   
  5.     //__ASM volatile ("strexb %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );
  6.     __ASM volatile ("strexb %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) );
  7.    return(result);
  8. }

  9. /**
  10. * [url=home.php?mod=space&uid=247401]@brief[/url]  STR Exclusive (16 bit)
  11. *
  12. * @param  value  value to store
  13. * @param  *addr  address pointer
  14. * [url=home.php?mod=space&uid=266161]@return[/url]        successful / failed
  15. *
  16. * Exclusive STR command for 16 bit values
  17. */
  18. uint32_t __STREXH(uint16_t value, uint16_t *addr)
  19. {
  20.    uint32_t result=0;
  21.   
  22.    //__ASM volatile ("strexh %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );
  23.    __ASM volatile ("strexh %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) );
  24.    return(result);
  25. }

  26. /**
  27. 1. @brief  STR Exclusive (32 bit)
  28. 2.  3. @param  value  value to store
  29. 3. @param  *addr  address pointer
  30. 4. @return        successful / failed
  31. 5.  7. Exclusive STR command for 32 bit values
  32. */
  33. uint32_t __STREXW(uint32_t value, uint32_t *addr)
  34. {
  35.    uint32_t result=0;
  36.   
  37.    //__ASM volatile ("strex %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );
  38.    __ASM volatile ("strex %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) );
  39.    return(result);
  40. }
 楼主| 略略u 发表于 2023-12-25 19:13 | 显示全部楼层
 楼主| 略略u 发表于 2023-12-25 19:13 | 显示全部楼层
调试器选择 26305658963e75bd15.png
 楼主| 略略u 发表于 2023-12-25 19:13 | 显示全部楼层
 楼主| 略略u 发表于 2023-12-25 19:14 | 显示全部楼层
编译下载
45960658963f819042.png
 楼主| 略略u 发表于 2023-12-25 19:14 | 显示全部楼层
注意事项:
如果不小心改动了IED默认布局可以这样重新恢复默认
您需要登录后才可以回帖 登录 | 注册

本版积分规则

84

主题

666

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部