我正在为树莓派上的裸机操作系统制作一个简单的printf函数。
目前该函数为空:
int kprintf(const char *string, ...) {
}
目前,我已经能够在屏幕上绘制。但是,在调用此函数时遇到了问题。作为测试,在调用kprintf之前,我向屏幕上绘制了一些字符。
如果我使用:
kprintf ("HELLO");
屏幕是空白的。但是,如果我使用以下命令:
kprintf ("HE");
一切正常。目前我唯一能想到的是链接脚本可能出了问题。也许是rodata部分有问题。
我正在使用剑桥树莓派教程中修改过的链接脚本:
STARTUP(crt0.o)
SECTIONS {
.init 0x8000 : {
*(.init)
}
.text 0x8080 : {
*(.text)
*(.rodata)
}
.data : {
*(.data)
}
.bss : {
*(.bss)
*(COMMON)
}
/DISCARD/ : {
*(*)
}
}
有什么想法吗?