午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

關(guān)于DSP中c_int00和引導(dǎo)程序

 吳家小院 2012-09-13
關(guān)于DSP中c_int00和引導(dǎo)程序
    1 ._c_int00符號(hào)的說明。它是運(yùn)行支持庫(RTS.lib)包含的一個(gè)重要函數(shù)。如果Linker選項(xiàng)使用-c或-cr選項(xiàng),_c_int00被自動(dòng)定義為程序的入口點(diǎn)。用c語言編程時(shí)要注意:在project-》options的linker屬性頁中要有-c,那是與c程序的入口。在Linker選項(xiàng)下面選擇NoAutoinitialization
    2. _c_int00是c語言程序的入口。 系統(tǒng)上電復(fù)位后,首先執(zhí)行reset矢量代碼,如果這個(gè)代碼是我們寫的話,我們就令CPU轉(zhuǎn)到c_int00,這段程序?yàn)閏語言運(yùn)行做準(zhǔn)備。準(zhǔn)備工作完成后,就轉(zhuǎn)到c語言的main()。 
    3. 如果reset矢量代碼不是我們寫的,是TI公司寫的那么就執(zhí)行bootloader程序,該程序?qū)哪硞€(gè)外部得到的真正程序放在規(guī)定的地方,改后轉(zhuǎn)過去執(zhí)行該代碼。 如何決定reset矢量代碼是ti寫的還是我們寫的,那就看復(fù)位后mp/mc腳的電平。要是調(diào)試的時(shí)候我們的mp/mc腳選擇了我們不希望的方式,怎么辦?(在調(diào)試的時(shí)候一般不管bootloader的,只有項(xiàng)目最后成功了才管),用jtag來控制。 
    4. C程序開始運(yùn)行時(shí),必須首先初始化C運(yùn)行環(huán)境,這是通過_c_int00函數(shù)來完成的,這個(gè)函數(shù)在運(yùn)行支持庫(rts.lib)中。連接器會(huì)將這個(gè)函數(shù)的入口地址放在復(fù)位中斷向量中,使其可以在初始化時(shí)被調(diào)用。_c_int00函數(shù)為建立C運(yùn)行環(huán)境,需完成以下工作: 為系統(tǒng)堆棧產(chǎn)生.stack塊,并初始化堆棧指針; 從.cinit塊將初始化數(shù)據(jù)拷貝到.bss塊中相應(yīng)的變量; 調(diào)用main函數(shù),開始運(yùn)行C程序; 
  5. c_int00是C初始化代碼的入口地址,在你用C編程的時(shí)候,DSP需要執(zhí)行一段C運(yùn)行支持庫代碼以完成C運(yùn)行環(huán)境的初始化,_c_int00就是這段初始化代碼的入口地址。執(zhí)行完初始化代碼后,庫代碼會(huì)自動(dòng)跳到main函數(shù)繼續(xù)運(yùn)行。
    我以前遇到有匯編和c混合編程有c_int00() 錯(cuò)誤和警告的問題,你的bootload程序運(yùn)行到c_int00() 跳轉(zhuǎn)不了!運(yùn)行c_int00() 后直接死了,會(huì)不會(huì)是沒有加載到合適的庫(rts.lib),進(jìn)入了一個(gè)死循環(huán),跳不到主函數(shù)那去

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多