- 打卡等级:以坛为家I
- 打卡总天数:312
- 最近打卡:2025-03-11 13:20:13
荣誉版主
- 积分
- 5395
|
STC32 数学函数库, 官方提供的LIB, 我反汇编看了, 原想学习学习, 结果发现有不少问题, 有小问题, 也有大错误(会影响程序执行结果).
小问题:
一. 官方库有点多, Large 模式和 Huge 模式 分开 两个库, 没必要, Keil 官方库, 这两种 模式, 都是合并成一个库的, 方便使用.
而让 Keil 官方分开的库, 是根据 Memory 储存模式不同, 分别 封装 不同的库, 其最主要的区别, 是 2字节指针 和 4字节指针.
2字节指针, 是为了兼容 51程序, 直接在 251上运行, 一般使用 Binary模式运行, 早期的芯片容量不大, 为节约内存而使用.
现在已完全没必要了.
STC32 采用 Source模式运行, 且芯片容量又大, 如 Memory 储存模式选择 Tiny模式, 大一点的程序就编译通不过了,
就算通过了, 且怀疑运行是否正常? 工作是否可靠? (官方手册强调 STC32G 是 4字节指针), 当用 2字节指针, 去访问
CODE 中的常数, 会产生什么结果? (我没测试过, 但大概率是不会有好结果的).
因此, STC32 专用库只需要编写 支持4字节指针即可, 这样, 完全可以只用一个库, 解决所有问题.
二. 官方库编译时会产生大量警告及无用代码, 把库按照正规标准格式书写后编译, 这些警告及无用代码, 都会不存在了.
|
|