![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C标准及GNU C扩展
文章平均质量分 95
GCC编译器对标准C语言的扩展语法:比如语句表达式、局部标签、attribute属性声明、可变参数宏等
WALI-KANG
这个作者很懒,什么都没留下…
展开
-
【STM32H750】从零编写MDK的FLM烧录算法
上文讲过,当我们要下载编译好的镜像到Flash时,首先要做的一步就是选择合适的Flash下载算法,而这个算法本身就是一个FLM文件:代码既可以下载到内部flash,也可以下载到外部flash,或者一部分下载到内部,一部分下载到外部。原创 2023-01-16 15:33:53 · 6148 阅读 · 0 评论 -
利用MDK的FLM文件生成通用flash驱动
在进行Flash操作时,一般我们需要设计一套Flash抽象层,至少要包括flash的init,read、write、erase这些操作。但每更换一个单片机或者flash器件就要额外去编写flash驱动去适配init,read、write、erase。尽管有会者不难的属性加持,但适配所有的单片机或者flash器件,工作量也可想而知。本文为大家提供一个适配几乎任意单片机型号的flash驱动,之所以说是几乎,是因为我们这次要借东风,而这个东风就是Keil的FLM文件。原创 2023-01-08 15:06:39 · 6653 阅读 · 1 评论 -
C语言模拟QT的信号与槽功能
使用过QT的朋友,应该都对QT的信号与槽机制深有体会,它可以非常方便的实现类与类之间的解耦合、实现对象与对象之间的解耦合、实现两个cpp文件之间的解耦合。既然信号槽如此好用,嵌入式开发也想拥有,下边就开始用C语言一步步实现它吧…先无脑定义一些与QT中一模一样的宏,然后再思考如何实现它的功能。原创 2023-01-05 21:21:19 · 1498 阅读 · 0 评论 -
C语言变参函数和可变参数宏
在上面的教程中,我们学会了变参函数的定义和使用,基本套路就是使用 va_list 、 va_start 、 va_end 等宏,去解析那些可变参数列表我们找到这些参数的存储地址后,就可以对这些参数进行处理了:要么自己动手,自己处理;要么继续调用其它函来处理。i ++) {}可变参数宏的定义和使用。其实,C99 标准已经支持了这个特性,但是其它的编译器不太给力,对 C99 标准的支持。原创 2022-12-16 15:01:31 · 4030 阅读 · 2 评论