怎样将程序从 STC8 转换到 STC32 , 正确的方法是~~~
本帖最后由 LAOXU 于 2023-1-13 08:49 编辑1. 先修改程序中 SFR定义, 存储模式 等, 让程序编译通过.
2. 修改程序中的 char变量, 除了必须定义为 char类型的, 将其余的 char类型, 统统修改为 int类型, 记着, STC32是16位机, 凡是16位以上的MPU, 最小处理单位(默认)是 字(int),
字节(char)一般仅用于输入/输出, 作数据交换用, 执行代码普遍偏长, 执行效率低.
程序中的 char变量不修改, 可能编译时警告错误一大堆!!!
3. 有些老司机编程, 会将 bit类型, 直接用 int类型代替.
楼上大哥 STC32G12K128是32位MCU, 讲16位的都是应用高手,不懂原理
https://www.stcaimcu.com/data/attachment/forum/202301/13/123011gc3lvdlze7os0x8x.png
251 为 保留 向上兼容性, 能 100%执行原 51指令, 但是.......
以 stc32 为例, 同样一条指令, 16位指令基本上 1个时钟周期完成, 而 8位指令基本上要 2个时钟周期才能完成.
哪种指令执行效率高, 已不用再言了. LAOXU 发表于 2023-1-13 11:47
251 为 保留 向上兼容性, 能 100%执行原 51指令, 但是.......
以 stc32 为例, 同样一条指令, 16位指令基本 ...
你这说明STC32G12K128系列不只是8位机,还是很好的16位机
===STC32G12K128 是很好的32位机,也是优秀的16位机,兼容8位机,更是优秀的 1位 机
https://www.stcaimcu.com/data/attachment/forum/202301/13/123011gc3lvdlze7os0x8x.png
STC8H8K64U系列切换到STC32G12K128/STC32G8K64 系列
===1, 换成 STC32G.h 的头文件
===2,编译器改成 KEIL C251即可
换下头文件
STC研发团队的一致观点:
STC32 系列是32位8051,也是优秀的16位机,更是兼容8位机的最强悍的1位 机
刚刚得知,目前的 32G, 不带 FPMU
新的 32F , 进展如何? 如已流片成功, 希望寄一片给我玩玩, 也算免费帮 贵司 测试 FPMU 功能完整性(流片出点问题很正常, 批量时可更正).
顺便把 浮点库 完善.
如在 娘胎 内, 我想对 32系列 指令及 MDU32 ,FPMU 模块, 提点建议, 如已考虑到, 请忽略, 如存在, 请在设计中加以考虑是否加入.
大部分8位指令也是 1个时钟
页:
[1]