![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STM32
试探你的温柔耶
这个作者很懒,什么都没留下…
展开
-
Bootloader程序加载
一,bootloader编写void (*jump2app)();void iap_load_app(uint32_t appxaddr){ if(((*(__IO uint32_t*)appxaddr)&0x2FFE0000)==0x20000000) //检查栈顶地址是否合法. { jump2app=(void(*)())*(__IO uint32_t*)(appxaddr+4); //用户代码区第二个字为程序开始地址(复位地址) __set_MSP(*(__IO uin原创 2020-09-10 19:43:22 · 427 阅读 · 0 评论 -
关于keil编译优化代码大小的方法
一,选择microLib将工程链接的标准C库改成microlib,可以大大减少代码量,差不多能优化20多K的代码2,代码优化等级说明:level 0 :近乎不优化,用于调试代码。出现代码行不能设置断点可如此设置试试。level 1 :部分优化。移除未调用的内联函数和静态函数,关闭debug窗口优化,此状态也能用于调试level 2 :如果处于debug状态,部分代码行将不能被调试,具体做了什么优化好像没说level 3 :深度优化。defeat:level..原创 2020-09-10 15:44:22 · 4187 阅读 · 2 评论 -
fputc函数重写实现printf重定向
一,printf重定向原理1,自己重写C的库函数 链接器检查到用户编写了与C库函数相同名字的函数时,优先调用用户编写函数,这样就可实现重定向2,重定向printf()函数 需重写fputc()这个c标准库函数(printf()在c标准库函数实质是一个宏,实际是调用fputc()函数) 说明 fputc()默认是把字符输出到调试器控制窗口,要把数据通过USART输出到串口助手,需对基于fputc()的printf(...原创 2020-09-10 15:30:08 · 6694 阅读 · 0 评论