三星6818基於uboot的流水燈程式

2021-10-10 13:30:30 字數 2061 閱讀 8127

檢視文件目錄查詢到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,由於硬碟可能有多塊碟片組成,每個碟片正面和反面都可以存資料,所以每個碟片正面和反面各有乙個磁頭,每個碟片的一面都是有一些同心圓組成,這些同心圓就是磁軌,不同碟片上的相同位置的同心圓 ...

三星的發展歷史

今天簡單了解了三星的發展歷史,這個近百年屹立不倒的偉大企業,真的值得好好研究。這是一步一步耕耘的結果,不浮躁,不斷創新 隨著世界步入第二個千年,三星集團也邁向了她的第二個世紀。數字時代為全球業務帶來了革命性的機遇和革新。三星集團一直緊隨這些變革,並不斷地更新自己的業務結構 經營理念以及公司文化,以滿...