IAR这个原始头文件语法真别扭,使用结构体访问位操作会导致代码不兼容,修改下兼容传统风格。
P0_bit.P00 = 0; X
P00 = 0; √
三大编译器中断声明的差异,使用宏进行归一化处理。
IAR中断声明差异点:
IAR声明的是地址,SDCC&C51是中断号
修改:
IAR与另外两个编译器的差异点:code区的变量必须声明为const
ercircle 发表于 2024-12-1 22:53
IAR与另外两个编译器的差异点:code区的变量必须声明为const
code区可以保存变量还真不知道啊。一直以为code区的都是常量。
soma 发表于 2024-12-2 09:01
code区可以保存变量还真不知道啊。一直以为code区的都是常量。
测了下,keil下虽然不需要声明const,但是也不能修改code区变量的内容,合理~
本帖最后由 ercircle 于 2024-12-2 15:48 编辑
知识点++
SDCC移植USB例程后不能正常枚举(是字节序的问题)
SFR声明时也可以区分地址大小端,妙蛙~
延申阅读:
关于大端序和小端序的问题
SDCC的端序和Keil不一样
加油,我也想要弄个来学习一下{:4_175:}
楼主威武,造福 51世界
lzts 发表于 2024-12-6 09:11
楼主威武,造福 51世界
夸张了,略尽绵薄之力,也是自己夯实基础