#include < pic16f84.h>
void main(void) {
TRISA0=0;
RA0=1;
}
收到这些警告。
daedalus@eurydice:〜/projects/pic $ sdcc -i/usr/share/share/sdcc/include/pic -p16f84test.c
c/usr/share/sdcc/include/pic/pic/pic16f84.h:101:警告182:sfr'indf'的绝对地址可能超出了范围。
/usr/share/sdcc/include/pic/pic/pic16f84.h:101:警告182:sfr'indf'的绝对地址可能超出了范围。
/usr/share/sdcc/include/pic/pic/pic16f84.h:102:警告182:sfr'tmr0'的绝对地址可能超出了范围。/usr/share/sdcc/include/pic/pic/pic16f84.h:102:警告182:sfr'tmr0'的绝对地址可能超出了范围。
/usr/share/sdcc/include/pic/pic/pic16f84.h:103:警告182:sfr'pcl'的绝对地址可能超出了范围。/usr/share/sdcc/include/pic/pic/pic16f84.h:103:警告182:sfr'pcl'的绝对地址可能超出了范围。
/usr/share/sdcc/include/pic/pic/pic16f84.h:104:警告182:SFR“状态”的绝对地址可能超出了范围。/usr/share/sdcc/include/pic/pic/pic16f84.h:104:警告182:SFR“状态”的绝对地址可能超出了范围。
/usr/share/sdcc/include/pic/pic/pic16f84.h:105:警告182:sfr'fsr'的绝对地址可能超出了范围。/usr/share/sdcc/include/pic/pic/pic16f84.h:105:警告182:sfr'fsr'的绝对地址可能超出了范围。
/usr/share/sdcc/include/pic/pic/pic16f84.h:106:警告182:sfr'porta'的绝对地址可能超出了范围。/usr/share/sdcc/include/pic/pic/pic16f84.h:106:警告182:sfr'porta'的绝对地址可能超出了范围。
/usr/share/sdcc/include/pic/pic/pic16f84.h:107:警告182:sfr'portb'的绝对地址可能超出了范围。/usr/share/sdcc/include/pic/pic/pic16f84.h:107:警告182:sfr'portb'的绝对地址可能超出了范围。
/usr/share/sdcc/include/pic/pic/pic16f84.h:108:警告182:sfr'eedata'的绝对地址可能超出了范围。/usr/share/sdcc/include/pic/pic16f84.h:108:警告182:sfr'eedata'的绝对地址 可能超出了范围。
/usr/share/sdcc/include/pic/pic/pic16f84.h:109:警告182:sfr'eeadr'的绝对地址可能超出了范围。/usr/share/sdcc/include/pic/pic/pic16f84.h:109:警告182:sfr'eeadr'的绝对地址可能超出了范围。
/usr/share/sdcc/include/pic/pic/pic16f84.h:110:警告182:sfr'pclath'的绝对地址可能超出了范围。/usr/share/sdcc/include/pic/pic/pic16f84.h:110:警告182:sfr'pclath'的绝对地址可能超出了范围。
/usr/share/sdcc/include/pic/pic/pic16f84.h:111:警告182:sfr'intcon'的绝对地址可能超出了范围。/usr/share/sdcc/include/pic/pic/pic16f84.h:111:警告182:sfr'intcon'的绝对地址可能超出了范围。
?aslink-warning未定义的全局'_trisa_bits'由模块引用'test'?aslink-warning未定定义的全局'_porta_bits'由模块引用'test'
有人可以帮我理解这些警告吗? 我应该在乎吗?
disclaimer:我从来没有从事pic
我的猜测是,编译器正在检测到分配给这些变量的地址(SFR的“特殊函数寄存器”)不在处理器的预期内存图内。 SFR语法看起来像是将寄存器变量掩盖到特定地址。 警告说这些地址似乎无效。 Many嵌入式编译器工具链包含某种“链接映射”命令文件,该文件告诉链接器在哪些物理地址中放置代码和数据。
此SDCC用户指南建议您可以使用“ .lkr”文件。 (请参阅第68页)。 确保这对您的特定处理器是正确的。 此外,该手册还说选择PIC的正确标志是__sfr __at (0x80) P0;
-mpic16