Time of Update: 2018-12-05
為什麼將SP設為 4096
Time of Update: 2018-12-05
在瞭解內嵌彙編的具體使用方法之後,還有幾點事項必須在編程時注意。(1)必須小心使用物理寄存器。在使用內嵌組譯工具設計方法時,必須要小心使用物理寄存器,主要指R0~R3、PC、LR寄存器,以及CPSR中的N、Z、C和V標誌位等。因為在計算彙編代碼中的C運算式時,可能會使用這些物理寄存器,並會修改N、Z、C和V標誌位。例如:__asm {MOV var,xADD y,var,x/y
Time of Update: 2018-12-05
運放作為低頻電路的主要元件之一,在供電方式上有單電源和雙電源兩種,而選擇何種供電方式,是初學者的困惑之處,本人也因此做了詳細的實驗,在此對這個問題作一些總結。 首先,運放分為單電源運放和雙電源運放,在運放的datasheet上,如果電源電壓寫的是(+3V-+30V)/(±1.5V-±15V)如324,則這個運放就是單電源運放,既能夠單電源供電,也能夠雙電源供電;如果電源電壓是(±1.5V-±15V)如741,則這個運放就是雙電源運放,僅能採用雙電源供電。
Time of Update: 2018-12-05
學習資料來源:Using
Time of Update: 2018-12-05
第九章 ARM異常中斷處理 9.1arm控製程序的執行流程1、正常程式執行:每執行一條arm指令,PC值加4位元組;每執行一條thumb指令,PC值加2位元組。2、跳轉:B/BL/BLX,對於BLX,跳轉到目標地址處執行,儲存子程式的返回地址,根據目標地址的最低位可以將程式切換到thumb狀態。3、中斷:系統先執行完當前指令,然後儲存現場,之後跳轉到異常中斷處理常式。中斷執行完後,恢複現場,程式返回到發生中斷的指令的下一條指令處執行。 9.1.2異常中斷向量表及優先順序中斷向量地址
Time of Update: 2018-12-05
LDR 是ARM中的指令,也是偽指令。當用 LDR r, =imd // r 為寄存器, imd為立即數LDR 是一條偽指令。編譯器會根據 立即數的大小,決定用 ldr 指令或者是mov或mvn指令。當imd能用mov或者mvn操作時,就將它翻譯成一條mov或mvn指令。當imd大於mov或mvn能夠操作的數時,編譯器會將imd存在一個記憶體單元中,然後再用一條ldr指令載入這個記憶體單元的的值到寄存器中。LDR r, label 和 LDR r, =label的區別:LDR r,
Time of Update: 2018-12-05
文章目錄 請教書中sdram裸機代碼回複:請教書中sdram裸機代碼 請教書中sdram裸機代碼memsetup:mov r1, #MEM_CTL_BASEadrl r2,mem_cfg_valadd r3, r1,#521:ldr r4, [r2],#4str r4, [r1],#4cmp r1,r3bne 1bmov pc,lrmem_cfg_val: .long 0x22011110 .long 0x00000700
Time of Update: 2018-12-05
根據教程,我們應學習ClutterAnimation,但是在這裡我碰到了一些問題,我不確定是否是Clutter1.0的問題,從某種意義上看,Clutter0.9比Clutter1.0更為穩定。我們已經一而再地討論了clutter的相容,但是我想仍需要再三討論這個問題。現在,我們學習類似的處理效果ClutterBehaviour,我認為所有ClutterAnmation均可以通過ClutterBehaviour來進行處理。消滅問題或者繞開問題,一直是中國傳統哲學的一個特點。 學習資料來源:U
Time of Update: 2018-12-05
Mov 是把立即數賦給一個寄存器,但對立即數的範圍有要求。只能是由8bit連續有效位通過偶數次移位能得到的數。如果立即數超出這個範圍,就沒辦法用一條MOV指令給寄存器賦值。LDR除了普通的讀數之外,也有給寄存器賦立即數的功能。你只要寫 LDR
Time of Update: 2018-12-05
最近需要整理一個以前的項目,需要增加新的介面。這個項目進行了很久,一開始用JDK1.4的版本,後來用JDK1.5的版本。再後來發現JDK1.5版本存在一個BUG(具體忘了,還沒能翻出文檔,好像和時間有關),需要JDK1.6。從1.4到1.5沒有任何問題,從1.5到1.6,在source code上沒有問題,但是1.6編譯的不能在JRE1.5上面跑。 接著這些東西開始塵封,有1年的時間,這期間,實驗室搬過,機器更換過,原來的開發環境已經沒有了。一些文檔還要慢慢尋找,先從source
Time of Update: 2018-12-05
在嵌入式軟體系統開發過程中,大量使用C語言進行應用程式開發以提高開發效率。同時,系統中經常包含一些決定整個系統效能的關鍵模組,此時為了獲得最佳效能,經常使用組合語言編寫它們,或者某些特殊情況下,例如操作硬體等,也必須使用組合語言。函數是C語言中一個重要的概念,在組合語言中經常使用子常式或過程(subroutine or procedure)表達同樣的概念,本文使用術語子常式。本文首先介紹ARM組合語言子常式設計的一般方法,並以此為基礎提出一種新的基於堆疊框架的設計方法,同時介紹與C語言互動技術。
Time of Update: 2018-12-05
在上一次的學習中,我們學習了ClutterTimeline,我們通過ClutterScore加入多個ClutterTimeline,這些timeline可以同時觸發,也可以依次觸發。我們將在這裡討論他們。學習資料來源:Grouping Timelines in
Time of Update: 2018-12-05
組合語言程式中的語句可以由指令、偽指令和巨集指令組成。指令:每一條指令都對應一種CPU操作。偽指令又稱為偽操作,它是在對來源程式彙編期間由組譯工具處理的操作,它們可以完成如處理器選擇、定義程式模式、定義資料、分配儲存區、指示程式結束等功能。巨集指令是由使用者按照宏定義格式編寫的一段程式,其中語句可以是指令、偽指令,甚至是已定義的巨集指令。偽指令和指令的區別在於,每一條指令必鬚生成機器代碼,然後在程式運行期間由CPU來執行其操作;而偽指令是在彙編期間由組譯工具執行的操作命令,除了資料定義及儲存空間
Time of Update: 2018-12-05
在使用2410開發板進行開發過程中,DNW是一個經常使用到的工具,這個工具可以實現上傳下載檔案,燒寫檔案,運行映像等功能。使用者在第一次使用時往往因為不熟悉一些操作的細節,從而出現一些問題。下面把這些問題歸納一下:DNW可以通過USB口把檔案下載到板子上,但是第一次使用時,必須在PC機上安裝和2410 USB HOST進行通訊的USB驅動,該驅動檔案位於光碟片的“USB驅動”檔案夾內,驅動檔案名稱為secbulk.inf。那何時系統會提示您安裝這個驅動呢?首先您需要確信一條串口線已經將PC和24
Time of Update: 2018-12-05
一直在看2440的中斷處理部分,不懂的實在太多了,百度到這篇文章,實在有聽君一席話,勝讀十年書的感覺啊,下面上文章:中斷向量 b HandlerIRQ ;handler for IRQ interrupt 很自然,因為所有的單片機都是那樣,中斷向量一般放在開頭,用過單片機的人都會很熟悉,那就不多說了。 異常服務程式
Time of Update: 2018-12-05
開發篇——核心模組編程篇kernel module編程(一):建立一個小例子 ——LDD3第二章學習筆記kernel module編程(二):一些古老的記憶kernel module編程(三):擷取(分配或註冊)裝置號——LDD3第三章學習筆記之一kernel module編程(四):裝置屬性和與上層應用的聯絡——LDD3第三章學習筆記之二kernel module編程(五):裝置讀寫——LDD3第三章學習筆記之三kernel
Time of Update: 2018-12-05
我們在git clone git://git.webkit.org/WebKit.git中下載webkit的基於GTK的sourcecode,進行編譯,希望能夠有一個基礎的開發環境。另外從repo.moblin.org中可以獲得webkit的相關rpm,可以下載一個src.rpm來試一試。 有很多軟體包的關聯性。在moblin網站上給出的2.1
Time of Update: 2018-12-05
非同步通知的意思是:一旦裝置就緒,則主動通知應用程式,這樣應用程式就根本不需要查詢裝置的狀態,這一點非常類似於硬體上的“中斷”的概念,比較準確的稱謂是“訊號驅動的非同步I/O”。訊號是在軟體層次上對中斷機制的一種類比,在原理上一個進程接收到一個訊號與處理器接收到一個插斷要求是一樣的。1>在把驅動從2.6.32 移植到2.6.36時 報錯 /home/kernel_test/globalfifo/globalfifo.c:240:2: error: unknown field 'ioctl'
Time of Update: 2018-12-05
如下:unsigned long *mmu_tlb_base = (unsigned long *)0x30000000; 如果執行mmu_tlb_base=mmu_tlb_base+1,會得到mmu_tlb_base為0x30000004的結果,對於指標的加減操作會將+1自動轉換為+指標類型位元組數 (unsigned short *)mmu_tlb_base+1的結果是0x30000002 (unsigned
Time of Update: 2018-12-05
深入理解ARM的這三個寄存器,對編程以及作業系統的移植都有很大的裨益。1、堆棧指標r13(SP):每一種異常模式都有其自己獨立的r13,它通常指向異常模式所專用的堆棧,也就是說五種異常模式、非異常模式(使用者模式和系統模式),都有各自獨立的堆棧,用不同的堆棧指標來索引。這樣當ARM進入異常模式的時候,程式就可以把一般通用寄存器壓入堆棧,返回時再出棧,保證了各種模式下程式的狀態的完整性。2、串連寄存器r14(LR):每種模式下r14都有自身版組,它有兩個特殊功能。 (1)儲存子程式返回地址。