我阅读了数据表,发现变量定义为unsigned char near Sample_X
. 这是什么,这与 有何不同unsigned char Sample_X
?
什么是“无符号字符附近”?
电器工程
编译器
多变的
2022-01-07 07:09:40
2个回答
这里指定的 MCU 是Freescale MC9C08 系列,它使用了稍微增强的 HC08 架构版本。这是一个 8 位内核,它(像许多这样的内核)具有比其他内核更短的指令和更快地访问“零页”地址。零页地址只有 8 位而不是 16 位,因此引用它们的指令可以是 2 个字节而不是 3 个字节,因此执行时间减少了 1 个周期。
“near”关键字指示编译器尽可能将变量放在“零页”中,以获得更好的性能。专门为嵌入式开发编写的编译器,例如这个,通常实现对语言的这种扩展(这里描述为“C 对零页面的支持”)。
根据 CPU 架构,可能会有不同的指令来访问不同地址的数据。这是Keil的一个示例,用于他们的编译器之一。
近访问有一定的内存限制,所以你可以提示编译器将一些经常使用的变量放置在较短指令可以访问的区域中(显然描述访问 32 位地址空间大于 16 位地址空间)。这可以转化为更小/更快的代码。
其它你可能感兴趣的问题