Time of Update: 2018-12-03
[移植OAL]WinCE6.0的核心啟動過程: OAL不能調用核心的KernelStart()函數了, 所以自己要實現一個KernelStart() (nkldr.lib替我們完成了這個, 把nkldr.lib連結到OAL),調用nkldr.lib中的KernelStart().然後執行的ARMInit()函數有一個很重要的任務,它將位於OAL的OEMinitGlobals()函數指標賦值到Kdata中,
Time of Update: 2018-12-03
1.BootLoader的架構1.1 Bootloader簡介Bootloader是建立在作業系統核心運行之前的一小段程式,通過這段小程式,可以初始化硬體裝置、建立系統的記憶體空間映射圖,從而將系統的軟硬體環境帶到一個已知的狀態,以便為最終叫用作業系統核心準備好正確的環境。最終,Bootloader把作業系統核心映像載入到RAM中,並將系統控制權傳遞給它。一個典型的bootloader是由blcommon、OEM代碼、EBOOT和網路驅動程式等組成,1所示: 圖1
Time of Update: 2018-12-03
轉載請註明出處作者:小馬問題1:找不到irsir.dll今天在公司定製一個核心,遇到一個問題,搞了一個上午(當然這也和公司的電腦速度有點關係), 編譯出現一個錯誤, 是這樣的:Error: Could not find file 'D:/WINCE420/PUBLIC/a2_vgagsp1214/RelDir/SAMSUN~2/irsir.dll' on disk irsir.dll
Time of Update: 2018-12-03
作者:ARM-WinCE 在WinCE中提供了CecImport.exe命令列工具,可以將WinCE6.0以前所使用的.cec檔案轉換成WinCE6.0中使用的.pbcxml檔案。該工具可以在"/Windows CE Platform Builder/6.00/CEPB/IdeVS"目錄下面找到. 具體命令格式如下:CecImport /target:pbcxml /winceroot:<winceroot> /output:<outputfilename>
Time of Update: 2018-12-03
轉載請註明出處作者:小馬最近做了一個wince下旋轉螢幕的測試. 我實現的效果是一個基於wince的應用程式, 顯示地區有個button, 每按一次這個button,螢幕會旋轉90度. 這個東東我調了整整三天, 中間遇到很多問題, 最後總算成功了,最關鍵的是,我對wince的顯示驅動有了更深的認識. 拿來分享一下. 要實現上述功能, 主要有兩個操作, 一個是對作業系統本身做一些支援旋轉螢幕的驅動修改.
Time of Update: 2018-12-03
您好,各位前輩可不可以問您一個問題,我最近在調一個6410的板子,想從SD卡啟動,SD卡的card detect檢測到了,但是時鐘沒起來,不知道是什麼問題,6410板子現在我只產生了12M的主時鐘和48M的USB-host時鐘,不知道行了嗎?不知道您可以給我點撥一下嗎,麻煩了,由於自己還是一個學生,很多情況可能會忽略了,而且om[1..4]和gpn[13..15]電壓正常,就是SD卡的CLK引腳沒有時鐘起來,
Time of Update: 2018-12-03
跟步進電機打交道有兩年多了,大二電子設計大賽集訓的時候第一次接觸它,一直到現在有時還會用. 這裡總結了一些我在實際開發中的一些積累. 希望高手看了指正批評,也同時給初學者提供一些學習上的參考1 uln2803是我用的比較多的一個步進電機的驅動IC了,它是單極驅動的,很便宜,在華強北買過,1元一個. 如果批量的話就更便宜了. 但是做為電機的驅動IC,2803有一個問題, 就是它很容易發熱.
Time of Update: 2018-12-03
轉載請註明出處作者:小馬剛學wince那會,對它的檔案儲存體老是理解不了. 最近公司在做一個wince下的終端移植項目,中間也遇到了一些儲存方面的問題,隨著學習慢慢深入, 有了一些自己的理解. 基於wince的裝置,一般有下面幾種實體儲存體裝置:nand flashnor flashSDRAM另外還有諸如SD卡, u 盤等一些不常用的外部儲存. nand flash在wince下應用時, 你可以把它理解為PC上的硬碟, 我們看一下PC的硬碟裡放了什麼.
Time of Update: 2018-12-03
函數樣本:用來計算一個包含64個字的資料包的校正和。int checksum(int * data){ char i; int sum = 0; for( i = 0; i < 64;i ++) { sum += data[i]; } return
Time of Update: 2018-12-03
作者:ARM-WinCE 在CEDDK中提供了用於地址映射的函數,在CEDDK/ddk_map/ddk_map.c中。該模組中主要提供了兩個函數用於物理地址到虛擬位址的映射與取消映射: 1. PVOID MmMapIoSpace(PHYSICAL_ADDRESS PhysicalAddress, ULONG NumberOfBytes, BOOLEAN CacheEnable) PhysicalAddress: 要被映射的物理起始地址 NumberOfBytes:
Time of Update: 2018-12-03
轉載請註明出處作者:小馬 本人也不是專家, 只是有點經驗, 僅是一家之言 SVC_STACK_LEGTH EQU 0FIQ_STACK_LEGTH EQU 0IRQ_STACK_LEGTH EQU 256ABT_STACK_LEGTH EQU 0UND_STACK_LEGTH EQU 0NoInt EQU
Time of Update: 2018-12-03
迴圈的終止條件應為減計數到零(count dawn to zero),而不是計數增加到某個特定的限制值。由於減計數結果已儲存在條件標誌裡,與零比較的指令就可以省略了。由於不再使用‘作為數組的下標索引,採用減計數就沒有任何問題。int checksum(int * data){ unsigned int i; int sum = 0; for( i = 64; i != 0;i --) { sum += *(data ++); } return
Time of Update: 2018-12-03
[轉載]:http://blog.cechina.cn/Chennousstar/41703/message.aspx 一、關於DLL的介紹 DLL,動態連結程式庫,Dynamic Link Library的縮寫,是一個包含函數和資料的模組集合,可以被其它應用程式共用的程式模組。DLL作為共用函數庫的可執行檔,封裝了一個或多個已被編譯、連結的函數。多個進程可以同時使用一個 DLL,在記憶體中共用該 DLL 的一個副本。DLL 還有助於共用資料和資源。
Time of Update: 2018-12-03
[轉載] http://www.ec66.com/article/list.asp?indexid=331Crystal(MHz) Max Baud Rate Error 1.00 300 2.12% 1.8432 9600 0.00% 2.00 300 0.79% 2
Time of Update: 2018-12-03
應該盡量限制函數內部迴圈所用局部變數的數目,最多不超過12個,這樣,編譯器就可以把這些變數都分配給ARM寄存器;編譯器會試圖對C函數中的每一個局部變數分配一個寄存器。如果幾個局部變數不會交迭使用,那麼編譯器會對它們分配同一個寄存器。當局部變數多於可用的寄存器時,編譯器會把多餘的變數儲存到堆棧。由於這些變數被寫入了儲存空間,所以被稱為溢出或者替換(swapped
Time of Update: 2018-12-03
轉載請註明出處作者:小馬根據自己的理解, 對lpc2xxx系列的ARM7的中斷機製做一個簡單的描述. 中斷是嵌入式系統很重要的一個功能. ARM提供IRQ和FIQ兩種中斷模式. 實際應用中,IRQ用的比較多. IRQ的中斷響應過程(比如儲存狀態寄存器等)我在這裡就不說了,隨便找本介結ARM的書都可以找到. 當系統檢測到一個中斷時(中斷源),首先去中斷向量表找到對應中斷源的中斷服務程式的入口地址. ARM支援32個中斷源. 這樣構成了一張中斷向理表.
Time of Update: 2018-12-03
轉載請註明出處作者:小馬 Iso/ansi本身並不規定內部資料類型的長度(原因簡單,如果他們這樣做了,現存的大部分代碼都不可用了, 所以標準委員會把定義資料類型的任務交給編譯器的研發者) 資料類型的長度的是由編譯器和CPU共同決定的, 最近調試一個程式,吃了資料長度的虧。資料長度對程式的移植性至關重要。這裡對C的基礎資料型別 (Elementary Data Type)長度以及與編譯器和CPU的關係做個總結。 一 資料長度的陷阱Char,
Time of Update: 2018-12-03
轉載請註明出處作者:小馬手上有一塊2410的板子, LCD是YL-LCD35. 寫一個驅動分析,為自己做一個技術筆記,供以後參考. 對於2410這種具有片內LCD控制器的晶片來說, 寫好一個lcd的驅動,最重要的就是做好內部寄存器的配置. 2410支援STN和TFT兩種LCD, 最高支援24bpp顯示. 上面這幅圖是2410 datasheet上截取下來的. 它是2410LCD磁碟機的內部框圖. 就上面的個模組做簡要敘述.REGBANK是寄存器組. 需要開發人員手動設定的寄存器都在這裡面.
Time of Update: 2018-12-03
轉載請註明出處作者:小馬CAN匯流排, 這是我畢設的最後一部分, 截至到今天晚上, 硬體部分已完成,軟體完成有90%。PCB板老師已經拿去加工, 後天估計可以到. 板子到之前可以接著寫代碼。焊好板子就可以直接調試了. 這裡把做硬體部分的一些心得體會寫下來, 軟體部分等我程式調試成功會再寫一篇文章.先簡單介紹一下我的工作. 一個PCB板上三個CAN節點, 類比485的主從通訊, 其中一個是主機,其它兩個是從機. 從機分別帶一個步進電機。 過程是電腦通過串口發一串指令,
Time of Update: 2018-12-03
轉載請註明出處作者:小馬 電機型號是DCM50205D 帶1000解析度增量式光電編碼器. 磁碟機型號是DCS810 這兩款產品都是雷賽公司的產品(去他們公司的網站上可以找到這兩款產品具體的參數), 這是當時實驗室想研究伺服電機專門買的, 我在實驗室這段時間花了一些功夫研究這個東西. 功能模組公司都給做好了,主要是做軟體控制. 下面都是我在實際應用中記錄的一些筆記1 由於我是用單片機控制, PUL+, DIR+, EN+ 接+5v, 對應的負極訊號接IO口編程式控制制.2