LAOXU 发表于 2023-1-13 08:46:11

怎样将程序从 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类型代替.

AI-32位8051 发表于 2023-1-13 09:07:58

楼上大哥 STC32G12K128是32位MCU, 讲16位的都是应用高手,不懂原理



https://www.stcaimcu.com/data/attachment/forum/202301/13/123011gc3lvdlze7os0x8x.png









LAOXU 发表于 2023-1-13 11:47:00

251 为 保留 向上兼容性, 能 100%执行原 51指令, 但是.......

以 stc32 为例, 同样一条指令, 16位指令基本上 1个时钟周期完成, 而 8位指令基本上要 2个时钟周期才能完成.

哪种指令执行效率高, 已不用再言了.

神农鼎 发表于 2023-1-13 13:06:38

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

神农鼎 发表于 2023-1-13 13:16:22

STC8H8K64U系列切换到STC32G12K128/STC32G8K64 系列
===1, 换成 STC32G.h 的头文件
===2,编译器改成 KEIL C251即可



神农鼎 发表于 2023-1-13 13:17:01

换下头文件







神农鼎 发表于 2023-1-13 14:02:59


STC研发团队的一致观点:
STC32 系列是32位8051,也是优秀的16位机,更是兼容8位机的最强悍的1位 机



LAOXU 发表于 2023-1-14 05:49:34

刚刚得知,目前的 32G, 不带 FPMU

新的 32F , 进展如何? 如已流片成功, 希望寄一片给我玩玩, 也算免费帮 贵司 测试 FPMU 功能完整性(流片出点问题很正常, 批量时可更正).

顺便把 浮点库 完善.

如在 娘胎 内, 我想对 32系列 指令及 MDU32 ,FPMU 模块, 提点建议, 如已考虑到, 请忽略, 如存在, 请在设计中加以考虑是否加入.

神农鼎 发表于 2023-1-14 08:57:31


大部分8位指令也是 1个时钟

页: [1]
查看完整版本: 怎样将程序从 STC8 转换到 STC32 , 正确的方法是~~~