檢視文件目錄查詢到gpio功能相應模組
找到配置gpio的方法
找到對應的暫存器配置位址
1)這個是我們要用到的暫存器圖表
2)這個是gpio復用功能暫存器,由兩位位元位還選擇不同的復用功能,至於功能0~3分別是什麼還需查相關資料這裡就不多解釋了
3)這是我們的輸出輸入使能暫存器
4)這是我們要輸出高低電平的暫存器
5)還要參考原理圖
有了資料和配置方法,現在我們附上原始碼讓d7燈亮起來~~
//1.定義暫存器
#define gpioeout (*(volatile unsigned int *)0xc001e000)
#define gpioeoutenb (*(volatile unsigned int *)0xc001e004)
#define gpioeoutaltfn0 (*(volatile unsigned int *)0xc001e020)
#define gpioeoutaltfn1 (*(volatile unsigned int *)0xc001e024)
static
void
delay
(void);
程式的入口,同時不使用標準的c庫,因此入口函式名字為_start
void
_start
(void)}
void
delay
(void
)
寫完**之後,我們就來編譯,因為我們這個程式要在開發板執行,所以要用板子的交叉編譯工具編譯用gcc是不行的
1.檢查ubuntu是否有交叉編譯器。
jiba@ubuntu:
~$ which arm-linux-gcc
/usr/local/arm/
5.4.0
/usr/bin/arm-linux-gcc
2.進入共享目錄去編譯led_demo1裸機程式。
1)將led.c編譯為目標檔案led.o,且不使用標準c的庫
arm-linux-gcc -o led.o -c led.c -nostdlib
2)將led.o鏈結到記憶體位址0x40000000,輸出新的執行程式為led.elf
arm-linux-ld -ttext 0x40000000
-o led.elf led.o
3)由於uboot不是linux作業系統,它不具有執行應用程式的能力,需要轉換為bin檔案。
arm-linux-objcopy -o binary led.elf led.bin
#tftp 檔名 記憶體位址
#tftp led.bin 0x40000000
執行某位址存在的二進位制檔案
#go 記憶體位址
#go 0x40000000..
.
結果
移植三星uboot
注 為學習朱有鵬嵌入式課程的筆記 三星uboot移植 在source insight裡改,複製到ubuntu中,可以寫個cp.sh,把複製命令都寫進來,再source cp,sh 解決問題首先要定位,細心查詢,總是有效的方法加列印資訊 1.遮蔽pmic模組 uboot執行起來了,但是很多配置錯誤 2...
分析三星的uboot中的fdisk功能
mbr的分割槽表有4個,每個分割槽表長度為16個位元組。chs mode表示cylinder head sector,由於硬碟可能有多塊碟片組成,每個碟片正面和反面都可以存資料,所以每個碟片正面和反面各有乙個磁頭,每個碟片的一面都是有一些同心圓組成,這些同心圓就是磁軌,不同碟片上的相同位置的同心圓 ...
三星的發展歷史
今天簡單了解了三星的發展歷史,這個近百年屹立不倒的偉大企業,真的值得好好研究。這是一步一步耕耘的結果,不浮躁,不斷創新 隨著世界步入第二個千年,三星集團也邁向了她的第二個世紀。數字時代為全球業務帶來了革命性的機遇和革新。三星集團一直緊隨這些變革,並不斷地更新自己的業務結構 經營理念以及公司文化,以滿...