- 博客(60)
- 收藏
- 关注
原创 KeilC51平台 - 变量编译与栈区的影响
一般大家开发KeilC51平台时,变量定义在idataxdata区,而C51单片机的栈空间则是在idata区,因此要预估充足的空间给予栈使用图一可以看到原始工程即使不定义变量,DATA MEMROY也会占用9个字节,前8字节为R0-R7工作寄存器,最后一个则为栈顶图二可以看到原始工程仅定义一个u8变量,DATA MEMROY占用10个字节,前8字节为R0-R7工作寄存器,0008H地址为定义的变量地址,最后一个则为栈顶。
2025-03-15 09:58:21
341
原创 KeilC51平台 - 变量和函数定义绝对位置
有时候需要在KeilC51中把变量或函数定义到绝对位置,以下简述做法以上方式对于函数定义来说是以函数段链接来定位,在MAP文件中可以查看各个函数段名技术交流群 : 745662457群内专注 - 问题答疑,技术研究。
2024-09-12 17:51:05
458
原创 MDK平台 - 变量和函数定义绝对位置
有时候需要在MDK中把变量或函数定义到绝对位置,以下简述做法attribute方式一:方式二:以上方式都不需要修改分散加载文件,方便快速实现技术交流群 : 745662457群内专注 - 问题答疑,技术研究。
2024-09-12 17:39:31
484
原创 Keil/MDK平台 - OTA升级详解
随着MCU的资源增大以及物联的普及,许多产品已经使用上了远程升级OTA技术,可以远程优化掉产品的BUG,大大降低了程序风险,以下详解KeilC51/MDK平台下的OTA步骤技术交流群 : 745662457群内专注 - 问题答疑,技术研究。
2024-09-12 11:26:00
1623
原创 FOC - BLDC六步换相驱动原理
无刷直流电机在这里区分为两种,一是永磁无刷直流电机(BLDC),二是永磁同步电机(PMSM),这两者最主要区别在于前者径向充磁,后者轴向充磁,此篇文章主要讲述永磁无刷直流电机(BLDC),这里不赘述基础原理,直接上干货。
2024-05-31 15:50:54
1836
原创 MDK平台 - Code, RO-data , RW-data, ZI-data详解
MDK编译后,会列出Code, RO-data , RW-data, ZI-data,详解各区域
2024-04-13 15:36:13
824
原创 排序 - 快排 (quick sort)
数据整理过程中经常需要把数据排序,这篇文章主要详解快速排序技术交流群 : 745662457群内专注 - 问题答疑,技术研究。
2024-01-30 20:55:43
837
原创 Keil/MDK平台 - 有符号与无符号变量比较注意事项
一般来说,C语言有符号与无符号比较,编译器默认情况下,如果有符号的值在无符号类型的范围内,则比较将基于该值转换到无符号类型中的表示,如果值超出无符号类型的范围,则行为是超纲的,以下便详解此类C语言的编译器百花齐放,了解编译器的编译行为有助于对程序稳定性的加固,上述情况在实际开发中尽量避免不同类型的有/无符号之间比较,再次抛出比较的概念当有符号的值在无符号范围内会把有符号转换成无符号比较,有符号的值超出无符号范围会让编译器无所适从,以下详解这类情况
2024-01-30 11:49:49
1884
原创 Keil/MDK平台 - 结构体成员指针注意事项
有时候希望通过类定义的类型指向数据包来解析,恰好又想结构体内定义指针指向一段数据,那很常见,不过有时候会忽略一个覆盖重叠的问题,以下详解指针覆盖重叠
2024-01-30 10:03:05
693
原创 KeilC51平台 - printf打印注意事项
平台调试用到printf接口打印一些数据,但是由于printf用到可变形参的概念,又由于KeilC51为8位平台,当我们在可变形参传入8位,16位,32位变量时,printf接口是不知道的,因为不像MDK平台是32位地址操作,因此需要在%d中加入对应类型修饰。本文秉持深入浅出风格展示内容,以上内容可了解到由于KeilC51是8位平台,可变形参并不知道传入的参数的几位的,因此协会标准制定了一个传入位数扩展字符,因此在8位平台里要留意printf的打印输出扩展字符。
2024-01-30 09:23:36
1510
1
原创 Keil/MDK平台 - 变量中断与后台调用注意事项
当中断中操作了变量,回到后台判断变量时有时候会判断不过是因为编译器优化在判断时不从ram区域地址取值判断,而是从寄存器变量中取值判断。
2024-01-29 11:37:39
726
原创 C++运算符重载
1 . 遵循原运算符语意扩展,即+运算,扩展后遵循+的逻辑交互内存2 . 大部分运算符可以重载,小部分不可以(如上述描述)3 . 个别运算符仅能在成员中重载4 . 个别运算符仅能在全局中重载5 . 运算符重载触发机制取决于是否属于全局/成员,参数列表是否符合
2024-01-07 12:04:31
913
原创 Qt - 应用
Qt发展到目前为止,比较成熟,基于优秀的跨平台能力,吸引了大部分用户开展生态,Java也是跨平台,但是Java需要安装虚拟机,Qt则不需要安装虚拟机,一份代码,到哪个平台就编译哪个版本。
2024-01-02 17:20:56
1075
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人