Time of Update: 2018-12-04
炮製了一篇,基本是拿來主義,不算技術,只能算雜談。主要來源是腦中的記憶和《主流ARM嵌入式系統設計技術與執行個體精解》,歡迎指正。*******************************************************************************關於嵌入式*******************************************************************************嵌入式應用的特點:功能特定,規模靈活,即時
Time of Update: 2018-12-04
http://blog.chinaunix.net/u1/42145/showart_327438.htmlvc中字串和數字轉換的函數:atoi,atol,strtod,strtol,strtoul 類型轉換 atoi,atol,strtod,strtol,strtoul實作類別型轉換atof(將字串轉換成浮點型數)相關函數atoi,atol,strtod,strtol,strtoul表標頭檔#include <stdlib.h>定義函數double atof(const char
Time of Update: 2018-12-04
前幾天看到老大的BLOG,好像提到做技術的創造真正的價值。當時覺得好像是那麼回事。今天與兄長聊了會,我又覺得有些問題。 就拿自己來說,我創造了什麼價值?我做的對誰有益?誰需要這所謂的價值?似乎沒有。我做的事,沒有任何產出,能算創造價值嗎?半死不活的狀態似乎只能是消耗別人的創造物,連IT民工的稱謂都不配了。 一個產品可以是1. 內部接近完美,外表光鮮;2. 內部粗糙,外表光鮮呢;3.
Time of Update: 2018-12-04
掃自己的盲,給別人看。 依然源自《主流ARM嵌入式系統設計技術與執行個體精解》 *******************************************************************************關於開發工具和調試*******************************************************************************關於硬體調試 工具箱:萬用表,示波器,電烙鐵等 調試方法,注意模組化
Time of Update: 2018-12-04
int const *p; 指向int型唯讀變數的指標 const int *p; 指向int型唯讀變數的指標,與第一個相同 int * const p; 指向int型變數的唯讀指標 const int * const p; 指向int型唯讀變數的唯讀指標 const * int p; const int const *p; 很明顯,這是錯的 由上可以這樣總結,const表示是唯讀變數,還是唯讀指標變數,關鍵看const是在*和變數名之間呢,還是在它們外面,
Time of Update: 2018-12-04
2009-04-26
Time of Update: 2018-12-04
串口通訊流量控制
Time of Update: 2018-12-04
相同的硬體,相同的軟體,一個能跑,一個不能跑,為什嗎?做軟體的人,懷疑硬體問題,做硬體的人,懷疑軟體問題,查了3個星期,只是把問題定位為DMA的不工作的問題,至於為什麼,還是不知道。dv跑case,結果硬體沒問題,匯流排正常。為什嗎?為什嗎?突然,同事說出了,這次晶片DMA要用物理地址!難道上次的不需要?果然,上次設計的晶片,不需要,CPU會有些小處理,而這塊則不同了,哎!~告訴lv.zheng,被他BS,天底下的DMA都應該是用物理地址的!還說了一堆體系的概念,複雜呀。這個BUG,潛伏期,很長
Time of Update: 2018-12-04
工具: count lines of code at "http://cloc.sourceforge.net" Linux-2.6.31-rc7------------------------------------------------------Language files blank comment code------------------------------------------------------C
Time of Update: 2018-12-04
1.輸入一組數,輸出其中有多少個負數。 程式碼如下:#include <iostream>int main(){ int sum = 0, value; std::cout << "Please input your numbers [End with CRTL+D] :" << std::endl; while (std::cin >> value) { if (value < 0) { sum++; } } std::cout
Time of Update: 2018-12-04
U-BOOT一、U-BOOT的目錄結構u-boot目錄下有18個子目錄,分別存放管理不通的來源程式。這些目錄中所要存放的檔案有其規則,可以分成三類。■第一類目錄與處理器體繫結構或者開發板硬體直接相關;■第二類目錄是一些通用的函數或者驅動程式;■第三類目錄是u-boot的應用程式、工具或者文檔。Board:和一些已有開發板相關的檔案,比如Makefile和u-boot.lds等都和具體開發板的硬體和地址分配有關。Common:與體繫
Time of Update: 2018-12-04
我們用的u-boot已經改的面目全非,不過核心還是完全相同的,換了個面目而已。開源的好處,想改就改來玩玩。不過流程還是人家的。 u-boot通過bootm命令來啟動核心,這個命令的處理函數是do_bootm,這個函數處理的是uboot-mkimage製作的映像,如果正好這個映像是核心,那麼它就會調用do_bootm_linux函數,並在該函數中給核心傳遞參數並調用核心入口函數來啟動核心。下面就來寫寫do_bootm和do_bootm_linux的簡單流程,以及u-boot是如何把核心啟動參數傳遞
Time of Update: 2018-12-04
printf 可能是許多程式員在開始學習C 語言時接觸到的第二個函數(我猜第一個是main),說起來,自然是老朋友了,可是,你對這個老朋友瞭解多嗎?你對它的那個孿生兄弟sprintf 瞭解多嗎?在將各種類型的資料構造成字串時,sprintf 的強大功能很少會讓你失望。由於sprintf 跟printf 在用法上幾乎一樣,只是列印的目的地不同而已,前者列印到字串中,後者則直接在命令列上輸出。這也導致sprintf 比printf
Time of Update: 2018-12-04
在VC中,CSTRING類的用法形式多樣,豐富多彩.但有時與傳統資料類型之間的轉換成為了很多人的難題.下面我來簡單介紹它們之間的關係.1 如何?cstring與char*之間的轉換: CString m_cstr="abc"; char* m_char="def"; char* lp=m_cstr.GetBuffer(m_cstr.GetLength()); m_cstr.ReleaseBuffer();
Time of Update: 2018-12-04
在VC中,CSTRING類的用法形式多樣,豐富多彩.但有時與傳統資料類型之間的轉換成為了很多人的難題.下面我來簡單介紹它們之間的關係.1 如何?cstring與char*之間的轉換: CString m_cstr="abc"; char* m_char="def"; char* lp=m_cstr.GetBuffer(m_cstr.GetLength()); m_cstr.ReleaseBuffer();
Time of Update: 2018-12-04
調用鏈如下,後面是文字解說: reset -> cpu_init_crit -> lowlevel_init (板子相關) -> relocate (將U-boot重定位到RAM) -> stack_setup -> clear_bss -> start_armboot() (C程式) -> main_loop()系統上電複位後首先跳轉到一個指定的地址,ARM的話是0x000
Time of Update: 2018-12-04
範圍:主要說的是工作在13.56MHz的近距離非接觸卡 其中遵循ISO/IEC 14443標準的PICC(proximity integrated circuit card)和PCD(proximity coupling device),工作距離大概大概10厘米到20厘米。 遵循ISO/IEC 15693標準的VICC(vicinity)和VCD工作距離大概是1米,比前者要大。ISO/IEC 14443
Time of Update: 2018-12-04
U-BOOT是一個LINUX下的工程,在編譯之前必須已經安裝對應體繫結構的交叉編譯環境,這裡只針對ARM,編譯器系列軟體為arm-linux-*。U-BOOT的: http://sourceforge.net/projects/u-boot我下載的是1.1.6版本,一開始在FTP上下載了一個次新版,結果編譯失敗。1.1.6是沒問題的。u-boot源碼結構
Time of Update: 2018-12-04
特點:Load / Store結構(儲存空間操作僅包括load和store,所有其他動作在寄存器中完成)32位固定指令寬度3地址指令格式(即兩個源運算元和結果寄存器都獨立指定)每條指令都條件執行可在單周期執行的單條指令內同時完成一項普通以為操作和一項普通ALU操作自動變址功能寄存器模型使用者模式下R1-R15的15個32位通用寄存器堆,R15為PC寄存器CPSR的狀態寄存器高四位表示N(負數)、Z(零)、 C(進位)、V(溢出)標誌分類介紹: +-------------+--------
Time of Update: 2018-12-04