Ⅰ kill c51,51單片機啟動代碼
如果用戶採用C語言編譯程序,那麼startup.a51可以在執行用戶的main函數之前,對系統進行一些初始化工作。
初始化內容包括內部及外部RAM的清零、棧初始化等等。用戶也可以根據自己的需要修改startup.a51中的初始化代碼。
Ⅱ 單片機關於STARTUP.A51
用包含一詞好像有點不妥,當在kiel C中新建項目時,會問:
Copy standard 8051 Starup Code to Project Forder and add file to Project?
翻譯為:復制8051啟動代碼到項目並和添加文件到項目?
其實無論您選是還是否,您的代碼中都將包含該文件。
該文件的作用是 初始化 內外部 RAM使其清零,另外還初始化SP等。
如果上述提示框您選否,對哪些RAM清零將採用默認的方式。
如果您想改變RAM清零區域(假如希望復位時某些RAM不被清零時會很有用。),您可以選是,這樣該文件的一個副本將添加到您的項目,您可以根據需要改寫此文件。
其他SP,SAMLL/COMPACT、LARGE模式的重入函數的堆棧和指針的初始化等和RAM的道理是一樣的。
Ⅲ MDK 如何載入啟動代碼
有一個匯編語言寫的程序,名字類似 startup_xxxx.s, 單片機啟動後就是首先進入該啟動代碼,該啟動可能會調用SystemInit函數,這個函數可以在Keil的 ARM/INC 目錄裡面對應不同的單片機有不同的文件(.c文件),裡面就實現了該函數。
Ⅳ 單片機的啟動代碼start.s,匯編寫的,並沒有說地址是在什麼位置,怎麼可以保證這段代碼不是在中斷區域。
有些不太明白你的意思,如果是用匯編寫的在程序開始之前你應該會定義數據段,程序段以及常數段一類的.至於你說的我覺理解你說的是兩種情況:第一,程序在遇到中斷的時候,主程序會怎麼執行的問題.也就是你說的啟動代碼在不在中斷區域的問題,.其實程序在遇到中斷的時候會將在當前指令壓棧,保護當前數據,並跳到中斷,執行完中斷程序過後再回到先前主程序壓棧的地方,繼續執行主程序.所以說中斷程序在什麼位置是沒有多大影響的,他是你設置的一個定時時間,時間到了就去執行,第二種情況:是你疑惑中斷代碼,啟動代碼在整個程序中的位置問題,關於這個我想說在程序開始之前,匯編語言一般都會有
0X00H是程序起始地址,0X08H是中斷向量.我不能很理解你的意思,所以,只能說這些,希望對你有幫助!