为例)"/>
Keil 5 MDK 发律师函警告了,如何用STCubeIDE开发标准库的程序(STM32F103C8T6为例)
用STCubeIDE进行标准库开发
1、CubeIDE介绍
2、CubeIDE下载
点击上面的链接,登录即可下载
3、搭建Demo工程
新建一个工作空间
创建一个工程
选择芯片-STM32F103C8T6
填写工程信息
添加标准库到工程
标注库文件
添加到工程中
配置工程属性
添加效果如下
添加标准库头文件路径
这次可以直接使用快捷键AlL+Enter调出配置界面,添加头文件路径
添加后如下
添加标准库的源文件到工程中
再次确认添加的头文件跟源文件
添加全局宏定义用于工程属性
移除重复的启动文件
把库文件自带的删除
修改内核文件
修改三行代码 每个加一个取地址符号
uint32_t __STREXB(uint8_t value, uint8_t *addr)
{uint32_t result=0;//__ASM volatile ("strexb %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );__ASM volatile ("strexb %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) );return(result);
}/*** @brief STR Exclusive (16 bit)** @param value value to store* @param *addr address pointer* @return successful / failed** Exclusive STR command for 16 bit values*/
uint32_t __STREXH(uint16_t value, uint16_t *addr)
{uint32_t result=0;//__ASM volatile ("strexh %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );__ASM volatile ("strexh %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) );return(result);
}/*** @brief STR Exclusive (32 bit)** @param value value to store* @param *addr address pointer* @return successful / failed** Exclusive STR command for 32 bit values*/
uint32_t __STREXW(uint32_t value, uint32_t *addr)
{uint32_t result=0;//__ASM volatile ("strex %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );__ASM volatile ("strex %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) );return(result);
}
编写用户自定义的LED代码编译发现了错误
原因:缺少文件
处理:漏加的文件
编译下载
编译通过:
用stlink下载
注意事项:
第一次下载使用STLINK可能需要更新以下固件,重新插拔几次点击更新即可。
后记:如果不小心改动了IED默认布局可以这样重新恢复默认
参考博客:
STM32CubeIDE移植标准库_cubeide 标准库_white_loong的博客-CSDN博客
从此再也不用担心版权问题了!!!
从此再也不用担心版权问题了!!!
从此再也不用担心版权问题了!!!
更多推荐
Keil 5 MDK 发律师函警告了,如何用STCubeIDE开发标准库的程序(STM32F103C8T6为例)
发布评论