RaspberryPiのベアメタルOSで簡単なprintf関数を作成しようとしています。
関数は現在空です:
int kprintf(const char *string, ...) {
}
現在、画面に描画することができます。ただし、この関数を呼び出すときに問題が発生します。テストとして、kprintfを呼び出す前に、画面にいくつかの文字を描画します。
私が使用する場合:
kprintf ("HELLO");
画面が空白です。ただし、使用する場合:
kprintf ("HE");
全て大丈夫。この時点で私が考えることができる唯一のことは、リンカースクリプトに問題があるに違いないということです。おそらくrodataセクション。
CambridgeRPiチュートリアルの変更されたリンカースクリプトを使用しています。
STARTUP(crt0.o)
SECTIONS {
.init 0x8000 : {
*(.init)
}
.text 0x8080 : {
*(.text)
*(.rodata)
}
.data : {
*(.data)
}
.bss : {
*(.bss)
*(COMMON)
}
/DISCARD/ : {
*(*)
}
}
何か案は?