1 Cache的原理?
Cache即高速緩存,它的出現(xiàn)基于兩種因素:一、CPU的速度和性能提高很快,而主存速度較低且價(jià)格高;二、程序執(zhí)行的局部性特點(diǎn)。將速度較快而容量有限的SRAM構(gòu)成Cache,可以盡可能發(fā)揮CPU的高速度。CPU與外設(shè)交換數(shù)據(jù)時(shí)經(jīng)常用到buffer(緩沖),這與緩存極其相似,只不過(guò)Cache是為了提高CPU和內(nèi)存之間的數(shù)據(jù)交換速度而設(shè)計(jì),而buffer是為了提高內(nèi)存和硬盤(或其他I/O設(shè)備)之間的數(shù)據(jù)交換速度而設(shè)計(jì)的。?
Baidu快照(cache.baidu.com)就是一個(gè)緩存的例子,其作用與計(jì)算機(jī)CPU緩存有類似之處。? Cache的原理如圖1所示。? 
在讀取內(nèi)存數(shù)據(jù)的同時(shí)CPU將數(shù)據(jù)保存到Cache數(shù)據(jù)區(qū),同時(shí)更新Cache映射表(保存地址信息,表示該地址的數(shù)據(jù)是否已在Cache數(shù)據(jù)區(qū),即是否命中)。這樣,CPU再次讀取該地址數(shù)據(jù)時(shí),就可以直接從Cache提取。讀Cache的時(shí)間遠(yuǎn)小于直接讀內(nèi)存,可提高CPU讀取數(shù)據(jù)的效率。???
Cache數(shù)據(jù)區(qū)有成塊讀取的特性(Cache映射表保存的地址是塊地址,節(jié)省空間,也符合程序執(zhí)行的局部性特點(diǎn))。Cache數(shù)據(jù)區(qū)遠(yuǎn)遠(yuǎn)小于內(nèi)存空間,就需要相應(yīng)的替代算法。比如最近最少使用算法,可將新數(shù)據(jù)替代使用頻率低的數(shù)據(jù),同時(shí)更新映射表信息??梢酝葡?,Cache空間越大,命中率越高。
寫內(nèi)存需要直接更新內(nèi)存。如果映射表存在該地址信息,還需要同時(shí)更新Cache數(shù)據(jù)區(qū)。這種Cache訪問(wèn)方式就稱作“直寫”,Samsung公司的ARM7微處理器S3CA510B就是這種方式。以下所討論的Cache問(wèn)題除非特殊說(shuō)明,否則都是“直寫”方式。
2 嵌入式編程時(shí)需注意的問(wèn)題
2.1?訪問(wèn)外設(shè)使用Cache的問(wèn)題
在訪問(wèn)內(nèi)存時(shí)使用Cache是不會(huì)出現(xiàn)問(wèn)題的,但如果訪問(wèn)數(shù)據(jù)易變外設(shè)(數(shù)據(jù)不依賴于CPU寫操作而改變)時(shí)使用Cache就可能出現(xiàn)問(wèn)題。問(wèn)題在于外設(shè)數(shù)據(jù)的改變不僅僅依靠CPU寫操作,CPU第一次讀取外設(shè)數(shù)據(jù)時(shí)將外設(shè)的數(shù)據(jù)和地址信息保存到Cache,第二次讀取外設(shè)數(shù)據(jù)時(shí)就可能有問(wèn)題出現(xiàn)。這是因?yàn)閿?shù)據(jù)直接從Cache提取,而外設(shè)的數(shù)據(jù)可能有改變。
因此,在訪問(wèn)易變外設(shè)時(shí)要禁止使能Cache,直接讀取外設(shè)數(shù)據(jù)到CPU,而不經(jīng)過(guò)Cache的任何環(huán)節(jié),即保證不改變Cache映射表和Cache數(shù)據(jù)區(qū)內(nèi)容。
S3C4510B的SYSCFG SFR(特殊功能寄存器)有用來(lái)控制Cache使能或不使能的,通過(guò)對(duì)該SFR的設(shè)置可暫時(shí)禁止Cache或重新恢復(fù)Cache功能。這樣就可以在讀取外設(shè)前禁止Cache,讀取結(jié)束后重新使能Cache,保證了外設(shè)數(shù)據(jù)讀取的正確性。寫數(shù)據(jù)到外設(shè)時(shí)采用“直寫”方式,更沒(méi)有問(wèn)題。
2.2?開(kāi)關(guān)Cache引發(fā)的新問(wèn)題
在Cache開(kāi)關(guān)期間,如果有另一個(gè)進(jìn)程/任務(wù)訪問(wèn)內(nèi)存,在此期間寫內(nèi)存并且該內(nèi)存在Cache中已有映射(注意,它也是被禁止Cache的,所以它不會(huì)同時(shí)更新Cache數(shù)據(jù)區(qū)的內(nèi)容),那么在Cache重新使能之后Cache數(shù)據(jù)區(qū)的信息已經(jīng)過(guò)時(shí)了,而Cache映射表還是Cache禁止之前的狀態(tài),如果CPU此時(shí)讀數(shù)據(jù)就會(huì)得到過(guò)時(shí)的數(shù)據(jù)。這樣看來(lái),引發(fā)的問(wèn)題范圍更廣了,連內(nèi)存的數(shù)據(jù)讀寫正確性都無(wú)法保證。與內(nèi)存泄漏的影響來(lái)比較,內(nèi)存泄漏如果是一顆定時(shí)炸彈,那么Cache問(wèn)題就可以說(shuō)是隨時(shí)隨地都可能踩上的雷區(qū),因?yàn)槌绦蛞坏╅_(kāi)始就可能引發(fā)爆炸。
如圖2所示,Cache使能時(shí)Cache映射表和Cache數(shù)據(jù)區(qū)保存了內(nèi)存的數(shù)據(jù)信息,這是CPU訪問(wèn)內(nèi)存時(shí)通過(guò)圖中實(shí)線箭頭通路實(shí)現(xiàn)的。內(nèi)存的信息可以與Cache的信息保持一致。
Cache禁止時(shí)的情況有所變化。由圖2中虛線箭頭通路直接進(jìn)行內(nèi)存訪問(wèn),且地址0x00處的數(shù)據(jù)由55變?yōu)锳A,但Cache區(qū)的信息仍為之前的狀態(tài)。很明顯,Cache的數(shù)據(jù)是應(yīng)該廢棄的,但是Cache映射表仍保存0x00的地址信息。Cache重新使能后,CPU再次讀取0x00地址的數(shù)據(jù),由于Cache仍是命中,直接從Cache數(shù)據(jù)區(qū)中提取數(shù)據(jù),這樣讀出來(lái)的數(shù)據(jù)就是0x55了。
由S3C4510B數(shù)據(jù)手冊(cè)第4節(jié)的第21頁(yè)可知:通過(guò)對(duì)SYSCFG寄存器的CE位置1或清0可使能/關(guān)閉Cache,但是Cache沒(méi)有內(nèi)容自動(dòng)刷新功能,在重新使能Cache時(shí)需考慮Cache數(shù)據(jù)的正確性。
為了證實(shí)以上說(shuō)法,循環(huán)執(zhí)行如下測(cè)試程序:
如果沒(méi)有Cache的影響,結(jié)果應(yīng)該是55 aa aa??梢?jiàn),Cache關(guān)閉再打開(kāi)的確可造成Cache數(shù)據(jù)過(guò)時(shí)。
3?其他CPU解決方案
Atmel公司的AT91RM9200和Samsung公司的S3C44B0,用這兩種CPU先后移植過(guò)操作系統(tǒng),且在對(duì)外設(shè)訪問(wèn)的整個(gè)過(guò)程中Cache都是使能的。它們的解決方案是什么呢?
AT91RM9200是ARM9系列帶有MMU的CPU。MMU對(duì)內(nèi)存有分頁(yè)管理功能,可以實(shí)現(xiàn)多個(gè)進(jìn)程的內(nèi)存空間保護(hù)。Cache是通過(guò)MMU管理的,這也是Cache和MMU經(jīng)常同時(shí)存在的原因。
S3C44B0和S3C4510B同樣都是Samsung公司產(chǎn)品,并且都不帶MMU。與S3CA510不同的是,S3C4480自帶的SFR可以配置非緩存范圍,即使Cache使能,所設(shè)置范圍的地址空間訪問(wèn)也不通過(guò)Cache實(shí)現(xiàn)。這樣,可以很方便地實(shí)現(xiàn)內(nèi)存是緩存區(qū),其他外設(shè)是非緩存區(qū)。
這兩種方案對(duì)于S3C4510B都無(wú)法實(shí)現(xiàn)。網(wǎng)絡(luò)上有人用volatile關(guān)鍵字解決外設(shè)訪問(wèn)問(wèn)題。volatile關(guān)鍵字是在源代碼中給編譯器看的,它可能影響編譯器的編譯結(jié)果,但是最終CPU執(zhí)行都體現(xiàn)到匯編語(yǔ)句,如果匯編語(yǔ)句都不能解決Cache問(wèn)題,volatile語(yǔ)句也是不可能解決的。?
對(duì)于易變數(shù)據(jù)的外設(shè)使用volatile關(guān)鍵字是應(yīng)該的,可避免編譯器的優(yōu)化,比如以下語(yǔ)句:? 
在兩次讀取portAdd地址的數(shù)據(jù)相同時(shí)等待,可以用到等待信號(hào)跳變的程序。如果將volatile關(guān)鍵字去除,有可能經(jīng)編譯器優(yōu)化,Value2不會(huì)從實(shí)際的portAdd地址讀取數(shù)據(jù),而是利用Valuel讀取語(yǔ)句的中間寄存器直接獲得。
4 本文解決方案
由S3C4510B手冊(cè)上第5節(jié)的第4頁(yè)可知,可以通過(guò)兩種方式保證Cache數(shù)據(jù)的正確:
①對(duì)Cache映射表的Tag RAM數(shù)據(jù)清零。Cache映射表數(shù)據(jù)一般是通過(guò)上電復(fù)位清零的,如果Cache或內(nèi)存段的設(shè)置被修改,則會(huì)造成Cache映射表數(shù)據(jù)廢棄,這時(shí)就需要通過(guò)程序?qū)ache映射表數(shù)據(jù)清0。?
②S3C4510B提供非Cache方式訪問(wèn)控制位,控制位ADDR[26](地址線26位)為“1”時(shí),按非Cache方式訪問(wèn)。因此,Cache使能的情況下,地址0x000 0000~0x3FFFFFF按Cache方式訪問(wèn),而0x400 0000~0x7FF FFFF按非Cache方式訪問(wèn)。實(shí)際上,0x000 0000+offset與0x400 0000+offset(offset在0x000 0000~0X3FF FFFF之間)是同一地址,不同的是Cache是否起作用。?
可以得到兩種解決方案:?
(1)Cache映射表手動(dòng)更新? 既然在開(kāi)關(guān)Cache之后內(nèi)容過(guò)時(shí),并且CPU不會(huì)自動(dòng)刷新,可以通過(guò)手動(dòng)更新的辦法來(lái)拋棄廢舊信息。也就是說(shuō),將Tag RAM區(qū)(前面所說(shuō)的Cache映射表)清除,這樣所有Cache數(shù)據(jù)區(qū)的內(nèi)容都不使能,再次讀取數(shù)據(jù)時(shí)同時(shí)更新Cache映射表和Cache數(shù)據(jù)區(qū)內(nèi)容,之后才能使用。清除操作將Tag RAM的1 KB內(nèi)容清零,需要消耗一定時(shí)間;并且這樣操作后Cache是0命中率的,只有一定訪問(wèn)次數(shù)后Cache信息重新填滿,才能恢復(fù)正常的命中率。因此,頻繁地開(kāi)關(guān)Cache時(shí)采用這種方案是不可取的。
(2)bit26位控制Cache使能
S3C4510B的地址線為26位(bit0~bit25),實(shí)際上CPU可訪問(wèn)空間為32位(bit0~bit31)。一般我們都不使用bit26~bit31,不過(guò)S3C4510B的這些位有著特殊的控制功能。通過(guò)bit26的高電平可以禁止該地址的Cache功能,因此將外設(shè)的地址由原來(lái)的ADDR_PORT改為(ADDR PORT∣(1<<26)),就可以實(shí)現(xiàn)外設(shè)訪問(wèn)時(shí)Cache不使能。這樣就不用改為SYSCFG的Cache使能控制位。比較來(lái)看,SYSCFG的Cache使能位是控制整個(gè)CPU訪問(wèn)的Cache使能與否,而bit26只控制當(dāng)前訪問(wèn)的一個(gè)具體地址的Cache使能與否。采用這種解決方案理論上有依據(jù),并且可以最大程度發(fā)揮CPU的功能。
5 修改程序后的試驗(yàn)結(jié)果
修改Cache解決方案后,可以解決內(nèi)存訪問(wèn)錯(cuò)誤的問(wèn)題。經(jīng)過(guò)測(cè)試,采用“bit26位控制Cache使能”的方案可以順利訪問(wèn)外設(shè),代碼執(zhí)行始終是在Cache使能的情況下,并且不影響內(nèi)存數(shù)據(jù)。若完全關(guān)閉Cache的程序,執(zhí)行同樣代碼需要花費(fèi)5~8倍的時(shí)間。
嵌入式編程需注意的Cache機(jī)制及其原理
- 嵌入式(330854)
- 編程(96940)
- CAC(8667)
相關(guān)推薦
熱點(diǎn)推薦
深入了解嵌入式編程
能從PC機(jī)器編程去看嵌入式問(wèn)題,那是第一步;學(xué)會(huì)用嵌入式編程思想,那是第二步;用PC的思想和嵌入式的思想結(jié)合
2017-10-18 09:56:23
4223
4223嵌入式硬件設(shè)計(jì)需注意的幾點(diǎn)
嵌入式設(shè)計(jì)是個(gè)龐大的工程,今天就說(shuō)說(shuō)硬件電路設(shè)計(jì)方面的幾個(gè)注意事項(xiàng),首先,咱們了解下嵌入式的硬件構(gòu)架。
2022-10-19 14:59:17
1225
1225嵌入式編程項(xiàng)目需要的注意事項(xiàng)
能從PC機(jī)器編程去看嵌入式問(wèn)題,那是第一步;學(xué)會(huì)用嵌入式編程思想,那是第二步;用PC的思想和嵌入式的思想結(jié)合在一起,應(yīng)用于實(shí)際的項(xiàng)目,那是第三步。
2022-12-23 10:40:31
964
964嵌入式編程錯(cuò)誤處理機(jī)制設(shè)計(jì)
本文主要總結(jié)嵌入式系統(tǒng)C語(yǔ)言編程中,主要的錯(cuò)誤處理方式。文中涉及的代碼運(yùn)行環(huán)境如下。
2023-04-28 09:59:40
1286
1286
Cache的原理是什么? 嵌入式編程時(shí)需注意的問(wèn)題有哪些?
Cache的原理是什么?嵌入式編程時(shí)需注意的問(wèn)題有哪些?其他CPU解決方案有哪些?
2021-04-22 07:17:41
嵌入式C編程常用的異常錯(cuò)誤處理
嵌入式C編程中,異常錯(cuò)誤處理是確保系統(tǒng)穩(wěn)定性和可靠性的重要部分。以下是一些常見(jiàn)的異常錯(cuò)誤處理方法及其詳細(xì)說(shuō)明和示例:
1. 斷言 (Assertions)
斷言用于在開(kāi)發(fā)階段捕獲程序中的邏輯錯(cuò)誤
2024-08-06 14:32:05
嵌入式C程序開(kāi)發(fā)需注意什么
今天看到一篇很優(yōu)質(zhì)的博客,轉(zhuǎn)發(fā)并推薦下:編寫優(yōu)質(zhì)嵌入式C程序:http://blog.csdn.net/zhzht19861011/article/details/45508029
2021-12-15 08:00:19
嵌入式LInux網(wǎng)絡(luò)編程
嵌入式LInux網(wǎng)絡(luò)編程 嵌入式工程師、嵌入式講師、10多年嵌入式開(kāi)發(fā)實(shí)戰(zhàn)經(jīng)...
2021-12-22 08:17:16
嵌入式處理器中Cache一致性問(wèn)題怎么解決?
隨著嵌入式計(jì)算機(jī)應(yīng)用的發(fā)展,嵌入式CPU的主頻不斷提高,這就造成了慢速系統(tǒng)存儲(chǔ)器不能匹配高速CPU處理能力的情況。為了解決這個(gè)問(wèn)題,許多高性能的嵌入式處理器內(nèi)部集成了高速緩存Cache。其中,三星公司的S3C44B0X內(nèi)部就集成了8KB空間統(tǒng)一的指令和數(shù)據(jù)Cache?!?/div>
2019-09-05 07:00:20
嵌入式實(shí)時(shí)操作系統(tǒng)如何簡(jiǎn)化應(yīng)用軟件的設(shè)計(jì)
在嵌入式領(lǐng)域中,嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)正得到越來(lái)越廣泛的應(yīng)用。采用嵌入式實(shí)時(shí)操作系統(tǒng)可以更合理、更有效地利用CPU的資源,簡(jiǎn)化應(yīng)用軟件的設(shè)計(jì),縮短系統(tǒng)開(kāi)發(fā)時(shí)間,更好地保證系統(tǒng)的實(shí)時(shí)性和可靠性。內(nèi)存資源作為嵌入式系統(tǒng)中極為重要的資源之一,其管理機(jī)制歷來(lái)是嵌入式系統(tǒng)設(shè)計(jì)的重點(diǎn)和難點(diǎn)。
2020-11-25 06:48:44
嵌入式開(kāi)發(fā)與Python編程有哪些區(qū)別及其聯(lián)系呢
嵌入式開(kāi)發(fā)是什么?Python又是什么?嵌入式開(kāi)發(fā)與Python編程有哪些區(qū)別及其聯(lián)系呢?
2021-12-24 07:56:07
嵌入式開(kāi)發(fā)項(xiàng)目的注意事項(xiàng)
嵌入式開(kāi)發(fā)項(xiàng)目中,首先需要做需求分析,然后根據(jù)需求分析進(jìn)行綜合考慮,這里給出幾個(gè)特別要注意的問(wèn)題.
2021-01-29 06:23:02
嵌入式開(kāi)發(fā):你是如何理解嵌入式c編程的
本期的嵌入式開(kāi)發(fā)學(xué)習(xí)將和大家討論什么是嵌入式c編程,你是如何理解嵌入式c編程的。在上個(gè)篇章我們有簡(jiǎn)單介紹了什么是嵌入式系統(tǒng)的官方定義以及其發(fā)展的階段?如對(duì)嵌入式開(kāi)發(fā)感興趣的童鞋不妨接著往下看。 一
2017-07-25 10:25:17
嵌入式系統(tǒng)是什么意思
在我們的日常生活中,我們經(jīng)常使用許多使用嵌入式系統(tǒng)技術(shù)設(shè)計(jì)的電氣和電子電路和套件。計(jì)算機(jī),手機(jī),平板,筆記本電腦,數(shù)字電子系統(tǒng)以及其他電子和電子設(shè)備都是使用嵌入式系統(tǒng)設(shè)計(jì)的。什么是嵌入式系統(tǒng)?將硬件
2021-10-28 08:58:02
嵌入式系統(tǒng)是由哪些部分組成的?實(shí)時(shí)嵌入式系統(tǒng)特征有哪些
嵌入式系統(tǒng)是由哪些部分組成的?實(shí)時(shí)嵌入式系統(tǒng)特征有哪些?嵌入式移動(dòng)數(shù)據(jù)庫(kù)管理系統(tǒng)的數(shù)據(jù)同步機(jī)制特點(diǎn)是什么?
2021-12-23 09:27:25
嵌入式系統(tǒng)電源設(shè)計(jì)中需要注意哪些事項(xiàng)?
嵌入式系統(tǒng)電源設(shè)計(jì)中需要注意哪些事項(xiàng)?遵循哪些原則?
2019-08-01 06:58:45
嵌入式系統(tǒng)的組成及其特點(diǎn)
嵌入式系統(tǒng)的組成嵌入式系統(tǒng)的特點(diǎn)嵌入式系統(tǒng)分層組成硬件軟件嵌入式系統(tǒng)的發(fā)展單芯片為核心,可編程控制器階段以嵌入式 CPU 為基礎(chǔ)、簡(jiǎn)單操作系統(tǒng)為核心以嵌入式操作系統(tǒng)為標(biāo)志以物聯(lián)網(wǎng)為標(biāo)志嵌入式系統(tǒng)
2021-10-27 09:30:15
嵌入式系統(tǒng)設(shè)計(jì)
在我們的日常生活中,我們經(jīng)常使用許多使用嵌入式系統(tǒng)技術(shù)設(shè)計(jì)的電氣和電子電路和套件。計(jì)算機(jī),手機(jī),平板,筆記本電腦,數(shù)字電子系統(tǒng)以及其他電子和電子設(shè)備都是使用嵌入式系統(tǒng)設(shè)計(jì)的。什么是嵌入式系統(tǒng)?將硬件
2021-10-27 06:50:19
嵌入式系統(tǒng)設(shè)計(jì)的新發(fā)展及其挑戰(zhàn)是什么
嵌入式系統(tǒng)設(shè)計(jì)技術(shù)發(fā)展的特點(diǎn)是什么采用定制SoC有什么缺點(diǎn)?嵌入式系統(tǒng)設(shè)計(jì)的新挑戰(zhàn)是什么
2021-04-27 07:02:29
嵌入式軟件編程中const、static、extern和volatile的原理是什么?怎么使用?
嵌入式軟件編程中const、static、extern和volatile的原理是什么?怎么使用?
2021-04-28 06:21:42
嵌入式軟件可靠性設(shè)計(jì)的四個(gè)方面注意問(wèn)題
的后果不僅僅是數(shù)據(jù)錯(cuò)誤而是有可能導(dǎo)致不可估量的災(zāi)難,所以總結(jié)起來(lái),嵌入式軟件可靠性設(shè)計(jì)需注意的問(wèn)題有四個(gè)方面:
2019-05-16 10:44:35
嵌入式軟件安全設(shè)計(jì)理念是什么?有什么注意事項(xiàng)?
嵌入式軟件安全設(shè)計(jì)理念是什么?嵌入式軟件設(shè)計(jì)需要注意什么問(wèn)題?
2021-04-27 06:51:22
C語(yǔ)言嵌入式系統(tǒng)編程注意事項(xiàng)
C語(yǔ)言嵌入式系統(tǒng)編程注意事項(xiàng)C語(yǔ)言嵌入式系統(tǒng)軟件架構(gòu)單任務(wù)程序典型架構(gòu)
2021-02-03 07:44:49
什么是嵌入式編程
《C嵌入式編程設(shè)計(jì)模式》第一章 什么是嵌入式編程嵌入式系統(tǒng)的基本知識(shí)面向?qū)ο?b class="flag-6" style="color: red">編程與結(jié)構(gòu)化編程使用C語(yǔ)言實(shí)現(xiàn)類、繼承、狀態(tài)機(jī) 第二章 嵌入式實(shí)時(shí)過(guò)程Harmony的嵌入式編程嵌入式應(yīng)用開(kāi)發(fā)中的敏捷過(guò)程
2021-11-08 06:15:53
什么是嵌入式系統(tǒng)?
在我們的日常生活中,我們經(jīng)常使用許多使用嵌入式系統(tǒng)技術(shù)設(shè)計(jì)的電氣和電子電路和套件。計(jì)算機(jī),手機(jī),平板,筆記本電腦,數(shù)字電子系統(tǒng)以及其他電子和電子設(shè)備都是使用嵌入式系統(tǒng)設(shè)計(jì)的。什么是嵌入式系統(tǒng)?將硬件
2021-12-22 06:11:56
你是如何理解嵌入式C編程
期的嵌入式開(kāi)發(fā)學(xué)習(xí)將和大家討論什么是嵌入式c編程,你是如何理解嵌入式c編程的。在上個(gè)篇章我們有簡(jiǎn)單介紹了什么是嵌入式系統(tǒng)的官方定義以及其發(fā)展的階段?如對(duì)嵌入式開(kāi)發(fā)感興趣的童鞋不妨接著往下看。 一
2017-03-22 10:58:58
你是如何理解嵌入式C編程的
什么是嵌入式系統(tǒng)的官方定義以及其發(fā)展的階段?如對(duì)嵌入式開(kāi)發(fā)感興趣的童鞋不妨接著往下看。 一、新手常常問(wèn)的一個(gè)問(wèn)題是c語(yǔ)言和嵌入式c編程有什么區(qū)別?而嵌入式工程師一般都會(huì)告訴你其區(qū)別在于嵌入式的C語(yǔ)言是跑在嵌入式
2017-03-07 21:15:35
你是如何理解嵌入式c編程的
嵌入式開(kāi)發(fā):你是如何理解嵌入式c編程的本期的嵌入式開(kāi)發(fā)學(xué)習(xí)將和大家討論什么是嵌入式c編程,你是如何理解嵌入式c編程的。在上個(gè)篇章我們有簡(jiǎn)單介紹了什么是嵌入式系統(tǒng)的官方定義以及其發(fā)展的階段?如對(duì)
2017-05-05 15:11:30
做嵌入式硬件設(shè)計(jì)時(shí)需要注意哪些事項(xiàng)?
嵌入式設(shè)計(jì)是個(gè)龐大的工程,今天就說(shuō)說(shuō)硬件電路設(shè)計(jì)方面的幾個(gè)注意事項(xiàng),首先,咱們了解下嵌入式的硬件構(gòu)架。
2021-03-09 08:36:18
關(guān)于嵌入式系統(tǒng)高級(jí)編程語(yǔ)言的基本知識(shí)點(diǎn)都在這里
什么是嵌入式系統(tǒng)高級(jí)編程語(yǔ)言?嵌入式系統(tǒng)高級(jí)語(yǔ)言編程特點(diǎn)有哪些?常用嵌入式系統(tǒng)高級(jí)編程語(yǔ)言基本性能有哪些?Java的特點(diǎn)是什么?它與嵌入式系統(tǒng)有什么關(guān)系?
2021-04-27 07:06:58
如何提升嵌入式編程能力?
如何提升嵌入式編程能力? 要提升嵌入式編程的能力,可以從以下幾點(diǎn)學(xué)習(xí): 1. 理解硬件:熟悉你正在編程的硬件平臺(tái),包括微控制器、處理器、內(nèi)存、輸入/輸出設(shè)備等基礎(chǔ)理論與應(yīng)用。 2. 學(xué)習(xí)基本原理
2024-06-21 10:01:44
如何設(shè)計(jì)帶Cache的嵌入式CPU?
隨著集成電路設(shè)計(jì)和工藝技術(shù)的發(fā)展,嵌入式系統(tǒng)已經(jīng)在PDA、機(jī)頂盒、手機(jī)等信息終端中被廣泛應(yīng)用。嵌入式系統(tǒng)具有電路尺寸小、成本低廉、可靠性高、功耗低等優(yōu)點(diǎn),是未來(lái)集成電路發(fā)展的方向。而作為嵌入式系統(tǒng)
2019-11-05 07:26:21
對(duì)嵌入式系統(tǒng)的功耗管理技術(shù)有哪些研究?
嵌入式操作系統(tǒng)有哪幾種工作功耗模式?如何去分析嵌入式操作系統(tǒng)中電源管理機(jī)制?
2021-04-25 08:34:47
工業(yè)嵌入式計(jì)算平臺(tái)開(kāi)發(fā)招聘
經(jīng)驗(yàn)2、熟悉ARM等微處理器架構(gòu),掌握嵌入式操作系統(tǒng)的移植、裁剪、驅(qū)動(dòng)開(kāi)發(fā)和應(yīng)用開(kāi)發(fā)3、精通C/C++編程,熟悉Linux內(nèi)核架構(gòu)和驅(qū)動(dòng)開(kāi)發(fā)。4、具有基于ARM ***可信應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn),熟悉ARMv8
2021-10-12 09:32:52
求一款可編程嵌入式系統(tǒng)的設(shè)計(jì)方案
為什么要設(shè)計(jì)一種可編程嵌入式系統(tǒng)?基于Java的可編程嵌入式系統(tǒng)是如何實(shí)現(xiàn)的?
2021-04-27 07:20:32
設(shè)計(jì)嵌入式硬件時(shí)需要注意哪些問(wèn)題?
嵌入式開(kāi)發(fā)項(xiàng)目中,首先需要做需求分析,然后根據(jù)需求分析進(jìn)行綜合考慮,這里給出幾個(gè)嵌入式硬件設(shè)計(jì)時(shí)特別要注意的問(wèn)題。
2021-03-11 07:21:43
請(qǐng)問(wèn)如何成為嵌入式高手?
插槽機(jī)制4、 QT圖形界面編程技術(shù)5、QT應(yīng)用程序與Linux驅(qū)動(dòng)的銜接6、 QT在實(shí)際項(xiàng)目中具體應(yīng)用第十部分:無(wú)線通訊應(yīng)用1、無(wú)線wifi模塊應(yīng)用2、3G模塊應(yīng)用第十一分布:嵌入式系統(tǒng)應(yīng)用程序
2020-08-30 11:28:25
嵌入式系統(tǒng)上消息機(jī)制的實(shí)現(xiàn)
圖形用戶界面是嵌入式系統(tǒng)中重要部分,是用戶與系統(tǒng)進(jìn)行交互的樞紐,如何建立一個(gè)有效的消息機(jī)制,實(shí)現(xiàn)消息從用戶到系統(tǒng)的傳遞,以及系統(tǒng)對(duì)消息的處理如何再反映到圖形
2009-06-16 08:52:22
16
16嵌入式CPU指令Cache的設(shè)計(jì)與實(shí)現(xiàn)
針對(duì)嵌入式CPU 指令處理速度與存儲(chǔ)器指令存取速度不匹配問(wèn)題,本文基于FPGA 設(shè)計(jì)并實(shí)現(xiàn)了可以有效解決這一問(wèn)題的指令Cache。根據(jù)嵌入式五級(jí)流水線CPU 特性,所設(shè)計(jì)指令Cache 的地
2009-08-05 14:27:54
36
36汽車電子的嵌入式軟件編程接口庫(kù)設(shè)計(jì)
汽車電子的嵌入式軟件編程接口庫(kù)設(shè)計(jì)
本文介紹了一種支持汽車電子的嵌入式軟件平臺(tái)編程接口庫(kù)的內(nèi)容和設(shè)計(jì)方法。該接口庫(kù)提供了以汽車電子 領(lǐng)域
2010-02-09 11:46:04
43
43cc++嵌入式系統(tǒng)編程.rar
cc++嵌入式系統(tǒng)編程
操作系統(tǒng)恐懼癥(osophobia)[名] 嵌入式系統(tǒng)開(kāi)發(fā)人員普遍存在的恐懼癥嵌入式編程的大多數(shù)問(wèn)題都可以因?yàn)椴僮飨到y(tǒng)的引人而獲益,這
2010-03-04 16:40:40
63
63嵌入式系統(tǒng)編程教學(xué)分析
通過(guò)volatile關(guān)鍵字的使用、嵌入式系統(tǒng)工程設(shè)置、嵌入式系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、嵌入式系統(tǒng)算法設(shè)計(jì)四個(gè)方面的介紹,分析了嵌入式系統(tǒng)編程本身特有的屬性和方法.通過(guò)嵌入式系統(tǒng)和
2010-07-01 17:07:36
26
26嵌入式系統(tǒng)自更新機(jī)制的設(shè)計(jì)與應(yīng)用
嵌入式系統(tǒng)自更新機(jī)制的設(shè)計(jì)與應(yīng)用
隨著嵌入式系統(tǒng)的發(fā)展和廣泛應(yīng)用,必不可少的維護(hù)工作變得日益繁重。如移動(dòng)電話在用戶使用過(guò)程中,部
2009-03-29 15:08:02
1250
1250
StrongARM及其嵌入式應(yīng)用平臺(tái)
StrongARM及其嵌入式應(yīng)用平臺(tái)
在簡(jiǎn)要介紹嵌入式CPU SA1110/SA1111的基礎(chǔ)上,著重從硬件方面介紹其接口的擴(kuò)展方法及擴(kuò)展信號(hào)定義,可滿足平臺(tái)設(shè)計(jì)中對(duì)所
2009-06-09 20:38:58
1056
1056
嵌入式Linux文件系統(tǒng)及存儲(chǔ)機(jī)制
本文分析了嵌入式系統(tǒng)中常用的存儲(chǔ)設(shè)備及其管理機(jī)制,介紹了常用的基于FLASH的文件系統(tǒng)類型
2011-05-14 10:22:15
2022
2022
嵌入式系統(tǒng)高級(jí)C語(yǔ)言編程
《嵌入式系統(tǒng)高級(jí)C語(yǔ)言編程》將以實(shí)際項(xiàng)目中的代碼作實(shí)例來(lái)進(jìn)行介紹,詳細(xì)分析在嵌入式系統(tǒng)開(kāi)發(fā)中程序員應(yīng)該注意的方法,技巧和陷阱。
2011-10-27 16:36:43
5098
5098嵌入式c語(yǔ)言編程(由淺入深)
本內(nèi)容詳細(xì)介紹了嵌入式c語(yǔ)言編程的各項(xiàng)知識(shí),包括嵌入式c語(yǔ)言編程,嵌入式C語(yǔ)言開(kāi)發(fā)、嵌入式C語(yǔ)言實(shí)例設(shè)計(jì)等,是一本值得用戶學(xué)習(xí)的教材
2011-11-02 14:37:56
0
0嵌入式系統(tǒng)C編程技巧探討及分享
不同于一般形式的軟件編程,嵌入式系統(tǒng)編程建立在特定的硬件平臺(tái)上,勢(shì)必要求其編程語(yǔ)言具備較強(qiáng)的硬件直接操作能力。無(wú)疑,匯編語(yǔ)言具備這樣的特質(zhì)。但是,歸因于匯編語(yǔ)言開(kāi)發(fā)過(guò)程的復(fù)雜性,它并不是嵌入式
2017-10-16 15:11:51
9
9詳談嵌入式編程需注意的Cache機(jī)制和原理
1 Cache的原理 Cache即高速緩存,它的出現(xiàn)基于兩種因素:一、CPU的速度和性能提高很快,而主存速度較低且價(jià)格高;二、程序執(zhí)行的局部性特點(diǎn)。將速度較快而容量有限的SRAM構(gòu)成Cache,可以
2017-11-01 16:16:20
0
0嵌入式系統(tǒng)教程之嵌入式硬件系統(tǒng)設(shè)計(jì)與應(yīng)用實(shí)例資料免費(fèi)下載
本書重點(diǎn)介紹了嵌入式應(yīng)用系統(tǒng)硬件的設(shè)計(jì)與開(kāi)發(fā),主要內(nèi)容包括嵌入式應(yīng)用系統(tǒng)硬件設(shè)計(jì)與開(kāi)發(fā)的基礎(chǔ)知識(shí)、各種典型嵌入式處理器及其典型應(yīng)用、嵌入式應(yīng)用系統(tǒng)硬件設(shè)計(jì)原理圖及其分析。本書分為三篇共9章:第一章
2018-12-07 08:00:00
57
57嵌入式處理器中cache數(shù)據(jù)不一致性的解決方法
隨著嵌入式計(jì)算機(jī)應(yīng)用的發(fā)展,嵌入式CPU的主頻不斷提高,這就造成了慢速系統(tǒng)存儲(chǔ)器不能匹配高速CPU處理能力的情況。為了解決這個(gè)問(wèn)題,許多高性能的嵌入式處理器內(nèi)部集成了高速緩存cache。其中,三星公司的S3C44B0X內(nèi)部就集成了8 KB空間統(tǒng)一的指令和數(shù)據(jù)Cache。
2019-03-24 09:07:35
3926
3926
需要了解嵌入式Linux文件系統(tǒng)及其存儲(chǔ)機(jī)制
嵌入式系統(tǒng)與通用PC機(jī)不同,一般沒(méi)有硬盤這樣的存儲(chǔ)設(shè)備而是使用Flash閃存芯片、小型閃存卡等專為嵌入式系統(tǒng)設(shè)計(jì)的存儲(chǔ)裝置,本文分析了嵌入式系統(tǒng)中常用的存儲(chǔ)設(shè)備及其管理機(jī)制,介紹了常用的基于FLASH的文件系統(tǒng)類型。
2019-05-06 16:43:00
1465
1465嵌入式開(kāi)發(fā)通常采用哪種編程語(yǔ)言
目前在嵌入式開(kāi)發(fā)領(lǐng)域比較常見(jiàn)的編程語(yǔ)言是C,另外C++、Python、JavaScript等語(yǔ)言也可以進(jìn)行嵌入式開(kāi)發(fā)??偟膩?lái)說(shuō),這幾門編程語(yǔ)言并不難學(xué)。
2019-06-18 16:59:51
16964
16964什么是嵌入式編程
什么是嵌入式編程?對(duì)于嵌入式系統(tǒng),許多人很容易將它與單片機(jī)編程混淆。其實(shí),嵌入式編程指的是在我們生活中的房屋、汽車、工作場(chǎng)所中的計(jì)算機(jī)編程設(shè)備,嵌入式系統(tǒng)便是運(yùn)行于其中。需要指出的是,所有單片機(jī)編程
2020-06-29 11:05:00
11725
11725
嵌入式系統(tǒng)裸機(jī)編程的內(nèi)存管理簡(jiǎn)介
? 在嵌入式裸機(jī)編程中,作為一名初級(jí)的CODER。經(jīng)常要與CPU、內(nèi)存等打交道。CPU作為系統(tǒng)的動(dòng)力源,其重要程度不言而喻。 ? 但是,在裸機(jī)編程中,對(duì)內(nèi)存的管理也不容忽視。如果稍微不注意,輕則
2020-12-28 09:44:27
3814
3814
嵌入式Interet安全通信機(jī)制EISCM的應(yīng)用探討
/IP協(xié)議棧接入Interner的方案為實(shí)現(xiàn)平臺(tái),通過(guò)選擇基于密碼學(xué)的安全機(jī)制,設(shè)計(jì)并實(shí)現(xiàn)嵌入式Internet安全通信機(jī)制EISCM。它提供一個(gè)相對(duì)安全的平臺(tái),可以使系統(tǒng)放心地接入Internet。
2021-06-22 14:08:42
2410
2410
嵌入式系統(tǒng)及其應(yīng)用報(bào)告
嵌入式系統(tǒng)及其應(yīng)用報(bào)告(嵌入式開(kāi)發(fā)年齡)-該文檔為嵌入式系統(tǒng)及其應(yīng)用報(bào)告總結(jié)文檔,是一份很不錯(cuò)的參考資料,具有較高參考價(jià)值,感興趣的可以下載看看………………
2021-07-30 10:29:42
5
5Linux內(nèi)核文件Cache機(jī)制
Linux內(nèi)核文件Cache機(jī)制(開(kāi)關(guān)電源技術(shù)與設(shè)計(jì) 第二版)-Linux內(nèi)核文件Cache機(jī)制? ? ? ? ? ? ? ??
2021-08-31 16:34:54
4
4嵌入式軟件開(kāi)發(fā)怎么編程
嵌入式開(kāi)發(fā),除了掌握基本的編程語(yǔ)法之外,編程的思想也是很關(guān)鍵,下面說(shuō)兩點(diǎn)編程思想。
2021-09-03 14:48:59
6639
6639
【嵌入式】基于ARM的嵌入式Linux開(kāi)發(fā)總結(jié)
前言嵌入式知識(shí)點(diǎn)復(fù)習(xí)一嵌入式知識(shí)點(diǎn)復(fù)習(xí)二 --體系結(jié)構(gòu)嵌入式知識(shí)點(diǎn)復(fù)習(xí)三 --ARM-LINUX嵌入式開(kāi)發(fā)環(huán)境嵌入式知識(shí)點(diǎn)復(fù)習(xí)四 --arm-linux文件編程嵌入式知識(shí)點(diǎn)復(fù)習(xí)五
2021-10-19 18:32:42
28
28解析嵌入式軟件開(kāi)發(fā)語(yǔ)言:嵌入式C編程
解析嵌入式軟件開(kāi)發(fā)語(yǔ)言:嵌入式C編程在我們初學(xué)嵌入式開(kāi)發(fā)的時(shí)候,總會(huì)出現(xiàn)一個(gè)問(wèn)題。那就是C語(yǔ)言和嵌入式C編程有什么區(qū)別?而嵌入式工程師一般都會(huì)告訴你,其區(qū)別在于嵌入式的C語(yǔ)言是跑在嵌入式的開(kāi)發(fā)板上
2021-10-20 11:51:00
7
7物聯(lián)網(wǎng)的嵌入式編程
嵌入式編程在使設(shè)備滿足人們的需求方面具有悠久的歷史。但是,它在很大程度上仍然被應(yīng)用程序編程所掩蓋。當(dāng)應(yīng)用程序程序員采用相對(duì)高級(jí)的面向?qū)ο蟮恼Z(yǔ)言(如C ++或Java)或圖形化應(yīng)用程序開(kāi)發(fā)環(huán)境(如
2021-10-20 13:06:01
1
1嵌入式系統(tǒng)
在我們的日常生活中,我們經(jīng)常使用許多使用嵌入式系統(tǒng)技術(shù)設(shè)計(jì)的電氣和電子電路和套件。計(jì)算機(jī),手機(jī),平板,筆記本電腦,數(shù)字電子系統(tǒng)以及其他電子和電子設(shè)備都是使用嵌入式系統(tǒng)設(shè)計(jì)的。1.什么是嵌入式系統(tǒng)?將
2021-10-21 10:51:11
1
1什么是嵌入式系統(tǒng)
在我們的日常生活中,我們經(jīng)常使用許多使用嵌入式系統(tǒng)技術(shù)設(shè)計(jì)的電氣和電子電路和套件。計(jì)算機(jī),手機(jī),平板,筆記本電腦,數(shù)字電子系統(tǒng)以及其他電子和電子設(shè)備都是使用嵌入式系統(tǒng)設(shè)計(jì)的。什么是嵌入式系統(tǒng)?將硬件
2021-10-21 11:36:13
3
3嵌入式linux報(bào)警,嵌入式Linux下LED報(bào)警燈驅(qū)動(dòng)設(shè)計(jì)及編程.doc
嵌入式Linux下LED報(bào)警燈驅(qū)動(dòng)設(shè)計(jì)及編程《嵌入式Linux下LED報(bào)警燈驅(qū)動(dòng)設(shè)計(jì)及編程》實(shí)驗(yàn)報(bào)告學(xué)生姓名:學(xué) 號(hào):專業(yè)班級(jí):指導(dǎo)教師:完成時(shí)間:實(shí)驗(yàn)5 嵌入式Linux下LED報(bào)警燈驅(qū)動(dòng)
2021-11-01 17:21:43
6
6嵌入式linux編程開(kāi)發(fā)必備知識(shí)
。那么學(xué)習(xí)嵌入式linux編程開(kāi)發(fā)應(yīng)該要必備什么條件呢?下面西安鷗鵬的小編就給大家講解下?! inux嵌入式編程開(kāi)發(fā)學(xué)習(xí)時(shí),你要從這幾個(gè)方面來(lái)下手: 首先就是熟知的C語(yǔ)言了,C語(yǔ)言是必須要學(xué)的,不管學(xué)習(xí)什么,都是要會(huì)的,對(duì)于C語(yǔ)言是嵌入式領(lǐng)域最重要也是最主要的編程語(yǔ)言,通過(guò)大量編程實(shí)例重點(diǎn)理解C.
2021-11-01 17:37:23
7
7視頻教程-嵌入式Linux多任務(wù)編程-嵌入式
嵌入式Linux多任務(wù)編程 嵌入式工程師、嵌入式講師、10多年嵌入式開(kāi)發(fā)實(shí)戰(zhàn)...
2021-11-02 11:21:19
22
22嵌入式網(wǎng)絡(luò)編程+嵌入式Linux系統(tǒng)
嵌入式網(wǎng)絡(luò)編程+嵌入式Linux系統(tǒng)一、 Linux操作系統(tǒng)安裝與使用(命令)二、 Linux開(kāi)發(fā)工具(gcc、gdb、make)三、 Linux系統(tǒng)編程(文件、進(jìn)程、線程、網(wǎng)路、數(shù)據(jù)庫(kù))Linux
2021-11-02 14:51:15
23
23C嵌入式編程設(shè)計(jì)模式
C嵌入式編程設(shè)計(jì)模式1 嵌入式系統(tǒng)有何特殊之處 11 嵌入式設(shè)計(jì)的約束 12 嵌入式工具 13 OSRTOS還是沒(méi)有操作系統(tǒng) 14 嵌入式中間件 15 與硬件協(xié)同開(kāi)發(fā) 16 調(diào)試與測(cè)試
2021-11-03 15:36:05
18
18《C嵌入式編程設(shè)計(jì)模式》讀書筆記
《C嵌入式編程設(shè)計(jì)模式》第一章 什么是嵌入式編程嵌入式系統(tǒng)的基本知識(shí)面向?qū)ο?b class="flag-6" style="color: red">編程與結(jié)構(gòu)化編程使用C語(yǔ)言實(shí)現(xiàn)類、繼承、狀態(tài)機(jī)?第二章 嵌入式實(shí)時(shí)過(guò)程Harmony的嵌入式編程嵌入式應(yīng)用開(kāi)發(fā)中的敏捷過(guò)程
2021-11-03 16:06:01
16
16嵌入式C++編程
特點(diǎn)展示如何使用 C ++ 來(lái)構(gòu)建利用可用硬件資源的強(qiáng)大并發(fā)系統(tǒng)。從嵌入式編程入門和 C ++ 17 的最新特性開(kāi)始,帶您了解優(yōu)秀編程的各個(gè)方面您將學(xué)習(xí)如何使用 C ++ 的并發(fā)性、內(nèi)存管理和函數(shù)式
2021-11-04 10:36:04
11
11淺談嵌入式系統(tǒng)裸機(jī)編程的內(nèi)存管理
malloc和free在PC編程中是很好用的一種內(nèi)存分配手段。但是,其在嵌入式中,就未必好用了。由于嵌入式裸機(jī)編程中,無(wú)MMU,即內(nèi)存管理單元。
2022-09-15 10:38:07
1990
1990嵌入式學(xué)習(xí)路線怎么學(xué)?如何學(xué)習(xí)嵌入式系統(tǒng)?
哪些技術(shù)呢? 1.嵌入式上層的軟件應(yīng)用開(kāi)發(fā) 需要:精通嵌入式Linux?C語(yǔ)言編程、嵌入式Linux C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)、嵌入式Linux項(xiàng)目開(kāi)發(fā)流程、嵌入式 Linux并發(fā)程序設(shè)計(jì)、嵌入式 Linux應(yīng)用編程、嵌入式 Linux網(wǎng)絡(luò)編程、嵌入式數(shù)據(jù)庫(kù)開(kāi)發(fā);若是
2022-10-30 13:15:39
2307
2307怎么從PC編程轉(zhuǎn)向嵌入式編程
能從PC機(jī)器編程去看嵌入式問(wèn)題,那是第一步; 學(xué)會(huì)用嵌入式編程思想,那是第二步; 用PC的思想和嵌入式的思想結(jié)合在一起,應(yīng)用于實(shí)際的項(xiàng)目,那是第三步。 很多朋友都是從PC編程轉(zhuǎn)向嵌入式編程的。 在
2023-06-22 10:36:00
1392
1392基于ARM核的嵌入式系統(tǒng)異常處理機(jī)制的設(shè)計(jì)
電子發(fā)燒友網(wǎng)站提供《基于ARM核的嵌入式系統(tǒng)異常處理機(jī)制的設(shè)計(jì).pdf》資料免費(fèi)下載
2023-10-27 09:00:49
0
0嵌入式可編程片上系統(tǒng)是什么
嵌入式可編程片上系統(tǒng)(Embedded Programmable System-on-Chip,或簡(jiǎn)稱EPSoC)是一種特殊的嵌入式系統(tǒng),它結(jié)合了嵌入式系統(tǒng)的特點(diǎn)和可編程片上系統(tǒng)的靈活性。
2024-03-28 15:33:45
1202
1202
電子發(fā)燒友App


評(píng)論