1. 為什麼單片機不需要編寫啟動代碼
有啟動代碼的,而且可以改的,就是那個startup.asm文件,是個匯編程序
2. 請問什麼是啟動代碼(單片機或者arm的)
cortex
m3現在沒有所謂的arm幾的區分了,就像你在手機上見的a8,a9一樣。此外還有汽車上的r系列。cortex系列現在好像只有三中,m0(超低功耗),m1(fpga上實現),m3(跟m0差不多,也是為了取代普通的單片機的高性價比產品),m4沒怎麼注意
3. 有關keil51的STARTUP.A51的問題
別用所謂的漢化版、並不是所有工程都必須使用用戶自定義的startup.a51的。如果項目中沒有,則Keil亦會通過庫中的啟動代碼實現標准化的啟動流程。
Keil C51是美國Keil Software公司(ARM公司之一)出品的51系列兼容單片機C語言軟體開發系統。
與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的模擬調試器等在內的完整開發方案,通過一個集成開發環境(uVision)將這些部分組合在一起。
系統介紹:
支持8051微控制器體系結構的Keil開發工具,適合每個階段的開發人員,不管是專業的應用工程師,還是剛學習嵌入式軟體開發的學生。
Keil C51目前由ARM國內授權代理商提供技術支持和銷售等相關服務。
產業標準的Keil C編譯器、宏匯編器、調試器、實時內核、單板計算機和模擬器,支持所有的251系列微控制器,幫助你如期完成項目進度。
以下圖表顯示Keil的開發工具以及它們相互之間的介面。
4. 單片機C語言 控制多個電機啟動代碼
這要看是什麼電機,發送6400個脈沖具體走多少,要看看電機具體的控制模式。
5. 單片機的啟動代碼start.s,匯編寫的,並沒有說地址是在什麼位置,怎麼可以保證這段代碼不是在中斷區域。
有些不太明白你的意思,如果是用匯編寫的在程序開始之前你應該會定義數據段,程序段以及常數段一類的.至於你說的我覺理解你說的是兩種情況:第一,程序在遇到中斷的時候,主程序會怎麼執行的問題.也就是你說的啟動代碼在不在中斷區域的問題,.其實程序在遇到中斷的時候會將在當前指令壓棧,保護當前數據,並跳到中斷,執行完中斷程序過後再回到先前主程序壓棧的地方,繼續執行主程序.所以說中斷程序在什麼位置是沒有多大影響的,他是你設置的一個定時時間,時間到了就去執行,第二種情況:是你疑惑中斷代碼,啟動代碼在整個程序中的位置問題,關於這個我想說在程序開始之前,匯編語言一般都會有
0X00H是程序起始地址,0X08H是中斷向量.我不能很理解你的意思,所以,只能說這些,希望對你有幫助!
6. 請教單片機的啟動過程
看過一篇文章說道:
CPU啟動後到有兩種方式:
1、CPU重啟後,將其PC寄存器設為特定地址,只要用戶的起始程序存在這個地址,就可以被正確執行;
——貌似51就是啟動後將PC寄存器設為00H。
2、CPU重啟後,會將CPU中存儲中斷矢量表地址的寄存器設為某特定地址,接著引發RESET中斷,程序
員只要把中斷矢量表存儲在這個地址。並指定RESET中斷的處理程序為自己寫的某個函數,則該函數就可以在
開機後被CPU執行。
——中斷矢量表不是固定在FLASH內部的一段內存嗎?怎麼又多了個存儲中斷矢量表的寄存器?
——棧、堆等的初始化到底是在RESET中斷的執行之前還是之後?
由於,應用到的程序一直是用C寫的,很少去關心單片機的啟動過程,往往編譯器也有現成的傻瓜版啟動代碼,
至於匯編畢業後就都忘得7788了。所以,單片機啟動過程這一塊我還是很亂很迷糊的,希望哪位有經驗的朋友
能夠指導或者做個概述一下,萬分感謝!~
7. 請問什麼是啟動代碼(單片機或者arm的)
位於單片機或者arm內部的程序存儲空間,一般是從0開頭,總大小不定的一段程序空間(本段空間受到特別保護的),裡面存儲的一段代碼就是啟動代碼,通過它可以實現通過任意埠更新其他程序空間的程序以及完成一些外圍硬體復位的工作
8. 單片機關於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的道理是一樣的。
9. kill c51,51單片機啟動代碼
如果用戶採用C語言編譯程序,那麼startup.a51可以在執行用戶的main函數之前,對系統進行一些初始化工作。
初始化內容包括內部及外部RAM的清零、棧初始化等等。用戶也可以根據自己的需要修改startup.a51中的初始化代碼。
10. 如圖所示:Keil v4單片機編程軟體里對C52單片機在新建工程時會有一個啟動代碼,這個啟動代碼有什麼作用
完成一些基本的初始化工作,例如RAM初始化、棧初始化。
對於用C寫的用戶程序而言,這樣確保跑進main()函數之前系統已經有了一個可控的、穩定的初始工作環境。