使用C語言清除BSS段,我們肯定要獲取BSS段的起始地址和結(jié)束地址,那么,C語言要怎么實現(xiàn)使用lds文件中的變量abc?
答:需要以下兩步,這兩步是重點。
在函數(shù)中聲明該變量為extern類型(類型不重要,因為我們主要是取值,具體原因后面會說);
使用時,要取址,比如, int *p = &abc;//p的值即為lds中abc的值。
比如下圖中,使用extern聲明代碼段的起始地址和bss段的起始地址,然后取值用指針進行復(fù)制操作,這樣lds中的變量也可以像C語言中的普通變量一樣操作。(實際上,它們和C語言中的變量不同。)
在C語言中需要聲明,那么在匯編指令中,為什么可以直接使用?(如下圖,為重定位和清除bss段的匯編代碼)
下面開始解答:
在C函數(shù)中,如果我們聲明如下變量。這樣,該變量為全局變量:
int g_i; //程序中必然有四字節(jié)空間來保存這個變量
1
但是,如果我們在lds鏈接文件中聲明了a1,a2,a3…an個變量,那么,.bin文件中是不會保存這些變量的,這是為啥?
答:這是因為C程序中不保存lds文件中的變量(因為一般用不到),而且真正要用到的時候,我們也并不是沒辦法。
我們編譯程序時,有一個symbol table符號表,萬一要用這些變量,可以通過這個符號表在鏈接的時候使用。
以上面為例,除了g_i,我們再聲明兩個變量:
int g_i, g_j, g_k;
那么在鏈接的時候,會有一個符號表如下:
畫質(zhì)不好,但是還是能看懂的。這里每個圈表示一個變量,一個變量由名字和地址構(gòu)成。顯然,C語言中的變量,名字即為變量名,地址即為變量的地址。但是,我們前面說過,.bin文件中不會保存lds文件中的變量,所以lds文件中的變量,地址填的是值,名字則還是變量名。 所以,我們在copy2sdram函數(shù)中才要使用取址符號來修飾這個lds變量,因為它的地址才是它的值。
另外,我們要明白。
這個符號表只存在于鏈接時,作用是輔助鏈接,不存在與.bin文件中。
lds文件中,無論變量還是常量,里面的值都來自于鏈接腳本,在鏈接時由編譯器決定。
在使用上,他們和C語言中的普通變量是不同的:
對于g_i,它是一個C語言變量,使用&g_i就可以得到它的地址Addr;
對于lds中的a1,他們沒有地址,因為.bin文件里面不會保存它們,C語言中使用它們時,使用&a1取它們的值。
綜上所述,使用ld中的變量,就是借助symbol table保存lds的變量,使用時加上&得到它們的值。
上一篇:1.4.2鏈接腳本,位置無關(guān)碼
下一篇:1.5.1異常與中斷_概念引入與處理流程
推薦閱讀
史海拾趣
由于我無法直接獲取關(guān)于BOWEI公司在電子行業(yè)中的具體發(fā)展故事,因此無法直接提供5個詳細的故事。但我可以為你概述BOWEI公司可能的發(fā)展故事框架,你可以根據(jù)這些框架來進一步擴展和撰寫。
BOWEI公司發(fā)展故事框架一:技術(shù)創(chuàng)新引領(lǐng)成長
BOWEI公司自成立以來,始終將技術(shù)創(chuàng)新作為公司發(fā)展的核心驅(qū)動力。面對電子行業(yè)的快速變革,公司投入大量資源用于研發(fā),推出了一系列具有創(chuàng)新性的電子產(chǎn)品。其中,某款產(chǎn)品在市場上取得了巨大的成功,不僅提升了公司的知名度,也為公司帶來了可觀的收益。這一成功的背后,是公司對技術(shù)創(chuàng)新的不斷追求和對市場需求的敏銳洞察。
BOWEI公司發(fā)展故事框架二:國際化戰(zhàn)略拓展市場
隨著國內(nèi)市場的日益飽和,BOWEI公司開始將目光投向海外市場。公司制定了國際化戰(zhàn)略,積極開拓國際市場。通過與國外知名企業(yè)的合作,BOWEI公司成功進入了多個海外市場,并取得了不俗的成績。國際化戰(zhàn)略的實施,不僅為公司帶來了新的增長點,也提升了公司的國際影響力。
BOWEI公司發(fā)展故事框架三:品牌建設(shè)提升競爭力
在電子行業(yè)中,品牌建設(shè)對于提升競爭力至關(guān)重要。BOWEI公司深知這一點,因此一直注重品牌建設(shè)和維護。公司通過優(yōu)質(zhì)的產(chǎn)品和服務(wù),贏得了消費者的信任和口碑。同時,公司還積極參與各種公益活動,提升了品牌的社會形象。這些努力使得BOWEI公司的品牌在市場上具有較高的知名度和美譽度。
BOWEI公司發(fā)展故事框架四:人才管理助力持續(xù)發(fā)展
人才是企業(yè)發(fā)展的根本。BOWEI公司非常重視人才的培養(yǎng)和管理。公司建立了一套完善的人才選拔、培養(yǎng)和激勵機制,吸引了一批優(yōu)秀的人才加入公司。這些人才為公司的發(fā)展提供了強大的智力支持和創(chuàng)新動力。同時,公司還注重員工的培訓和成長,為員工提供了良好的職業(yè)發(fā)展空間。
BOWEI公司發(fā)展故事框架五:綠色環(huán)保理念推動可持續(xù)發(fā)展
在追求經(jīng)濟效益的同時,BOWEI公司也積極履行社會責任,推動綠色環(huán)保理念的實施。公司致力于開發(fā)環(huán)保型電子產(chǎn)品,減少生產(chǎn)過程中的污染排放。同時,公司還積極參與各種環(huán)保活動,倡導綠色消費理念。這些舉措不僅提升了公司的社會形象,也為公司的可持續(xù)發(fā)展奠定了基礎(chǔ)。
請注意,以上僅為BOWEI公司可能的發(fā)展故事框架,具體的內(nèi)容需要根據(jù)公司的實際情況進行撰寫。在撰寫時,應(yīng)確保所描述的事實準確、客觀,避免主觀評價和褒貶。
在CCI的發(fā)展歷程中,人才培養(yǎng)和團隊建設(shè)始終是公司發(fā)展的重要保障。公司注重員工的個人成長和職業(yè)發(fā)展,為員工提供多樣化的培訓和發(fā)展機會。
同時,CCI還建立了完善的激勵機制和福利制度,激發(fā)員工的工作熱情和創(chuàng)造力。通過加強團隊合作和文化建設(shè)等方式,公司營造了一個積極向上、充滿活力的工作氛圍。這種良好的團隊氛圍不僅提高了員工的工作效率和滿意度,也為公司的持續(xù)發(fā)展提供了有力的人才保障。
HANBIT Electronics自成立以來,便致力于技術(shù)創(chuàng)新與產(chǎn)品研發(fā)。2005年,公司投入大量資源研發(fā)新一代高性能手機顯示屏技術(shù),成功推出了具有低能耗、高清晰度和廣視角特性的OLED屏幕。這一創(chuàng)新不僅迅速獲得了市場的認可,還使得HANBIT Electronics在手機零部件供應(yīng)商中脫穎而出,與多家國際知名品牌建立了長期合作關(guān)系。該技術(shù)的成功不僅提升了公司的市場份額,也為其后續(xù)在高端顯示技術(shù)領(lǐng)域的持續(xù)探索奠定了堅實基礎(chǔ)。
隨著國內(nèi)市場的逐漸飽和,AVA電子開始將目光投向國際市場。公司制定了詳細的國際化戰(zhàn)略,包括拓展海外市場、建立海外銷售渠道、加強與國際同行的合作等。AVA電子積極參加國際性的行業(yè)展會和論壇,與國際客戶建立了廣泛的聯(lián)系;同時,公司還加大了對海外市場的宣傳力度,提高了品牌在國際市場的知名度。這些舉措不僅為公司帶來了更多的商機,也提升了公司在國際市場的地位。
請注意,以上故事是基于AVA電子的公開信息和一般電子科技公司的發(fā)展規(guī)律進行創(chuàng)作的,并非真實事件。如果需要更具體、更詳細的故事,建議直接查閱AVA電子的官方資料或相關(guān)新聞報道。
FMI公司始終堅持以客戶為中心的發(fā)展理念,致力于為客戶提供定制化的頻率控制解決方案。公司擁有一支專業(yè)的研發(fā)團隊和完善的生產(chǎn)流程,能夠根據(jù)客戶的具體需求進行產(chǎn)品設(shè)計和生產(chǎn)。無論是標準產(chǎn)品還是定制產(chǎn)品,F(xiàn)MI都能確保高質(zhì)量和快速交付。這種靈活的服務(wù)模式使得FMI在客戶中樹立了良好的口碑,并為公司贏得了更多的商業(yè)合作機會。
作為一家有社會責任感的企業(yè),Elpac公司始終關(guān)注環(huán)境保護和可持續(xù)發(fā)展。公司積極采用環(huán)保材料和清潔能源,努力降低生產(chǎn)過程中的能耗和排放。同時,Elpac公司還積極參與各種公益活動和社會事務(wù),回饋社會、關(guān)愛弱勢群體。這些舉措不僅提升了公司的品牌形象和社會影響力,也為公司的長遠發(fā)展注入了正能量。
以上是關(guān)于電子行業(yè)里某假設(shè)性“Elpac公司”的發(fā)展故事,希望對您有所幫助。
關(guān)于指令cache和數(shù)據(jù)cache的一些問題 主要想問下,通用的RISC處理器中,指令存儲器和數(shù)據(jù)存儲器是分開的,那么對于取指階段,指令從指令cache中取出,結(jié)果下到數(shù)據(jù)cache中;這個數(shù)據(jù)cache中具體寫的是些什么內(nèi)容呢?這些內(nèi)容的具體作用是做什么用的呢?這個數(shù)據(jù)cache怎樣將結(jié)果被外設(shè)應(yīng) ...… 查看全部問答∨ |
|
建議學電子的都看一下這本書---發(fā)明者電子設(shè)計寶典 內(nèi)容簡介: 書的目的在于解釋電子學中很多經(jīng)常被誤解的或者是很少提及的概念,例如電容中的電流位移,怎樣看待光學放大器,光子產(chǎn)生的方式,什么是阻抗匹配等諸如此類的問題。當前很多電子學書籍常常忽略了這些關(guān)鍵點,而它其實是更好的理解電子現(xiàn)象的 ...… 查看全部問答∨ |
|
!求助,關(guān)于stc-isp下載器v4.8以上版本各選項的詳細說明! 百度了半天,還是沒有找到這個版本各中選項的詳細說明,用過的前輩有資料的請指教一下,比如什么\"每次下載重新調(diào)入已在打開在緩沖區(qū)的文件\"....等等等等,十分感謝!… 查看全部問答∨ |
|
招聘手機Baseband Engineer & Electrical Engineer(北京) 職位要求: 1. 本科及以上學歷背景 2. 具有三年以上手機基帶,電路設(shè)計工作經(jīng)驗 3. 英語讀寫能力強。 有意者請與我聯(lián)系: Email:sindyshi@chinacareer.com Tel: 010-58790033-2 ...… 查看全部問答∨ |
有一設(shè)備地址:60.214.117.229 開放端口:10001 該設(shè)備遵循DL/T-645協(xié)議。 請用C++寫一段小程序讀取它的數(shù)據(jù)?!? 查看全部問答∨ |
招聘職位:1〉WinCE GUI 工程師 崗位職責: 嵌入式Wince上層/GUI軟件開發(fā),嵌入式WinCE應(yīng)用軟件開發(fā) 職位要求: ...… 查看全部問答∨ |
設(shè)計資源 培訓 開發(fā)板 精華推薦
- 電動車電池成本降一半,續(xù)航卻減一半?寧德時代新電池能突圍嗎?
- 從“不可修”到可拆可換:CTP電池的售后怎么辦?
- 區(qū)域控制器ZCU國產(chǎn)化:從物料齊全到系統(tǒng)話語權(quán)
- 總額超260億-盤點全球移動機器人領(lǐng)域融資TOP10企業(yè)
- 安森美CEO談?wù)撾妱悠嚺cAI服務(wù)器前景
- LILYGO T-LoRa Pager:復(fù)古造型與前沿技術(shù)結(jié)合的物聯(lián)網(wǎng)手持設(shè)備
- VS Code+PlatformIO搭建ESP32 Arduino開發(fā)環(huán)境
- Esp32環(huán)境離線搭建參考
- ESP32使用舵機庫時的錯誤
- ESP32 S3接ST7789屏幕線序
- 6.2--DIY進展匯報--PCB畫好了
- 給EEWORLD提個建議
- 【micropython DIY】{ESP32} 用ESP32對太陽能輻照情況進行分析
- PCI32 IP CORE調(diào)試
- 開發(fā)一個虛擬的Mobile驅(qū)動,用Pb調(diào)試,該驅(qū)動先被load,接著又被unload掉,這可能是什么問題?
- 我的問題有點特殊,關(guān)于framebuffer驅(qū)動
- 大家誰對現(xiàn)在(凱思昊鵬)比較熟悉
- 應(yīng)用技巧/IEEE-1394技術(shù)特點及發(fā)展前景
- WinCE打開工程失敗
- 數(shù)碼管的動態(tài)計數(shù)問題