30日自作OS入門三日目でつむつむしたお話

 

cmdにて

現象1


        Rule file error : can't find format section
    

とか

現象2


        Can't open rule file
    

とでる現象に遭遇しました.

現象1に対しては, haribote.rulファイル内にて, UTF-8になっていた文字コードSJISもしくはJISにすることにより回避できました.

今後は, typoやパスのミスだけでなく文字コードも第一に疑うことにする癖をつけるのにいい教訓になりました

現象2に対してはharibote.rul内にて.libファイルへのパスが通っていないことに起因するっぽく, 相対アドレスでもコンピュータ側が分かるような相対パス(怖いから絶対パスにした方がいいかも)を書かないとこのエラーがでるみたいです.


format:
	/* このセクションでリンクの方針を記述 */
	code(align:1, logic:0x24,      file:0x24);
	data(align:4, logic:stack_end, file:code_end);

file:
	/* このセクションでコマンドラインに書ききれなかった
		.ojbファイル、.libファイルを記載 */
	/* なお、このセクションはフルパスで書いてもよい。 */
	/* 例:  c:/osask/gg00libc.lib;  */
	
	../z_tools/haribote/golibc.lib;
	../z_tools/haribote/harilibc.lib;
   ここの相対パスを絶対パスにするなり, フォルダを移し替えたならそれに合うように相対パスを設定するなりする

label:
	/* 必ずリンクしなければいけないラベルを指定 */
	/* エントリポイントを指定すればいいと思ってください */
	_HariStartup;

	/* 上記3セクションの順序は入れ替えてはいけません! */

また, Makefile内にて$(TOOLPATH)変数がなんか機能してなくて, $(OBJ2BIM) @$(RULEFILE) out:bootpack.bim stack:3136k map:bootpack.map \ bootpack.obj naskfunc.obj の所で挙動がおかしくなって現象2が見られることがありましたがRULEFILE変数のパスをTOOLPATH変数を使わずに直で書いたところまともに動くようになりました.(一体Makefileは中でどういう挙動をしてるのだろう...)