一周循、引腳接法:
????1、模塊與板子上的寄存器通過引腳相連焚挠,不同bit位的芯片引腳接法不同或杠。
二、時序圖:
????1、根據時序圖的標注搜索芯片手冊并配置相應寄存器向抢,寄存器中的參數要參照硬件的相關手冊設置。
三胚委、寄存器配置:
????1挟鸠、根據芯片手冊,注意寄存器讀寫的位數亩冬。8位用 (volatile unsigned char *) 類型指針艘希,16位用 (volatile unsigned short *) 類型指針,以此類推硅急。
四覆享、函數移植:
????1、去uboot中查找
????2营袜、去內核源碼中查找
????3撒顿、去庫函數中查找(一般來說編譯器自帶有很多庫)
????????????①、輸入命令arm-linux-gcc -v荚板,查看當前使用的交叉編譯工具鏈凤壁。
? ? ? ? ????②、輸入命令echo $PATH跪另,在環(huán)境變量中找到當前使用的交叉編譯工具鏈所在的路徑拧抖。
? ? ? ? ????③、進入交叉編譯工具鏈所在目錄搜索相關函數免绿,例如grep “__floatsisf” * -nR唧席。
? ? ? ? ????④、提取出其中的靜態(tài)庫(.a后綴文件)嘲驾,復制文件到代碼文件淌哟。
? ? ? ? ????⑤、修改Makefile距淫,依次嘗試加入的每個靜態(tài)庫绞绒,直至編譯成功。
????注:
????????????①榕暇、如果更換了編譯器蓬衡,需要自己去編譯器目錄里找出對應的庫,并逐個嘗試彤枢。
????????????②狰晚、ARM是精簡指令集,對求余和除法操作基本上不支持缴啡,需要添加linux內核源碼linux/arch/arm/lib/lib1funcs.S實現支持除法壁晒、求模操作等操作的庫函數。
附:常識
????1业栅、Flash 編程原理都是只能將 1 寫為 0秒咐,而不能將 0 寫為 1谬晕。所以在 Flash 編程之前,必須將對應的塊擦除携取,即把所有位寫為 1 (塊內的所有字節(jié)變?yōu)?0xff)攒钳。
? ? 2、常見縮寫:
????????VDD:電源電壓(單極器件)雷滋。????????VCC:電源電壓(雙極器件)不撑。? ? ? ? VSS:地或負極。? ? ? ? VEE:負電壓供電晤斩。
? ? ? ? GND:接地焕檬。
? ? 3、有些中斷觸發(fā)之后不會自動清除澳泵,需要手動清除实愚。具體參考芯片手冊。