Dua*_*lva 1 c microcontroller endianness pic xc8
我已经在 XC8 编译器上编译了这个简单的代码,并将十六进制文件加载到 Picsimlab - 具有 PIC16f877a 微控制器的模拟器板(板 4)。
unsigned int x = 1;
char *ptr = (char *) &x;
if (*ptr == 1)
{
clcd_print("little Endian", LINE1(0));
}
else
{
clcd_print("big Endian", LINE1(0));
}
Run Code Online (Sandbox Code Playgroud)
输出:小端
那么我们可以推论Xc8编译器遵循小端字节序系统来编程PIC16f877a吗?
这是否也意味着 PIC16f877a 使用小端字节序系统将变量存储到其数据存储器中?
您能否提供指向有关字节排序系统的文档的链接,然后是 PIC16f877a 和 XC8 编译器?
查看XC8编译器的用户指南。在第 5.4.2 章中,您可以阅读有关整数变量的字节序:
所有整数值都以小端格式表示,最低有效字节 (LSB) 位于低地址
Little endian 是所有 xc 编译器的默认值且仅使用端序。
PIC16 系列是 8 位控制器,因此控制器本身不必关心字节序。