最近在做TI單片機TM4C123GE6PZ的BootLoader,需要對啟動文件做出修改,折騰了半宿,弄得事實而非。
IAR默認提供了單片機的啟動文件,cstart.s或者其他cstartxxx.s,並且已經編譯到庫文件里面,剛開始嘗試修改IAR/arm/scr下的安裝文件,發現不起作用,IAR不會重新編譯這個文件而是直接鏈接已經編譯好了的庫文件。可以通過閱讀.map文件查找程序入口由哪個文件提供。最后發現,只需要將自己的啟動文件放在工程目錄下面並且包含到工程里面就行。IAR在鏈接的時候首先尋找工程目錄,當沒有找到需要的接口是再尋找庫目錄。
可以通過修改IAR設置來指定整個程序入口,例如
option->linker->override defualt program enty 這個地方指定程序入口,比如指定為main,這編譯出來的代碼將不包含main以前的單片機啟動程序部分,直接重應用程序開始。