S3C2440之裸機之彙編點亮LED燈

2021-09-24 11:26:00 字數 2421 閱讀 3159

虛擬機器環境:oracle vm virtualbox

linux系統:ubuntu_14.04.6

交叉編譯工具:[100ask分享的所有檔案](

100ask分享的所有檔案 > 002_jz2440資料光碟_20180516(免費) > 資料光碟 > a盤 > tools.zip > arm-linux-gcc-4.3.2.tar.bz2

gcc-3.4.5-glibc-2.3.6/bin

第一步:檢視原理圖

輸出低電平點亮led燈

輸出高電平熄滅led燈

第二步:檢視晶元手冊

相應引腳配置為輸出

輸出低電平

第三步:編寫程式

led_on.s:

.text

.global _start

_start:

ldr r0,=0x56000050

mov r1,#0x00001000

str r1,[r0]

ldr r0,=0x56000054

mov r1,#0x00000000

str r1,[r0]

main_loop:

b main_loop

第四步:編寫makefile

makefile:

arm_linux_***=/home/xlbtlmy/desktop/arm_linux/gcc-3.4.5-glibc-2.3.6/bin

cc=$(arm_linux_***)/arm-linux-gcc

ld=$(arm_linux_***)/arm-linux-ld

objcopy=$(arm_linux_***)/arm-linux-objcopy

objdump=$(arm_linux_***)/arm-linux-objdump

target=$(opt)

src=$(shell ls *.s)

objs=$(patsubst %.s,%.o,$(src))

bin=$(target).bin

elf=$(target).elf

dis=$(target).dis

$(bin):$(objs)

$(ld) -ttext 0x00000000 $^ -o $(elf)

$(objcopy) -o binary -s $(elf) $(bin)

$(objdump) -d -m arm $(elf) > $(dis)

%.o:%.s

$(cc) -c -o $@ $<

.phony:clean

clean:

rm -f *.o *.bin *.elf *.dis

make opt=led_on

第五步:燒錄執行

eop.bat:

@echo off

:jtag(0:openjtag 1:donglejtag 2:wiggler)

set jtag=0

:cpu(0:s3c2410 1:s3c2440 2:s3c6410)

set cpu=1

:flash(0:nand 1:nor)

set flash=0

:access(0:write 1:read)

set access=0

:offset()

set offset=0

:file()

set file=led_on.bin

oflash %jtag% %cpu% %flash% %access% %offset% %file%

pause

第五步:觀察實驗現象

左邊的led燈被點亮

測試:

.text

注釋掉之後編譯

無提示資訊

.global _start

注釋掉之後編譯

提示「warning: cannot find entry symbol _start; defaulting to 00000000」

s3c2440裸機串列埠UART

串列埠收發資料 115200,8n1。每一位的時間是t 1 115200。傳輸乙個位元組需要10位 包括起始位1位,資料位8位,停止位1位,需要的時間是t 10 115200。每秒傳輸的的位元組數 1 t 115200 10 11520byte。回環模式 一發出資料就立刻收到,用於測試。main.c...

S3C2440裸機 時鐘

目錄 1.s3c2440的時鐘體系 1.1.s3c2440結構框圖 1.2 s3c2440時鐘樹 1.3 s3c2440上電順序 2.暫存器配置 2.1clkdivn暫存器 2.2mpllcon暫存器 2.3設定cpu為非同步模式 3.程式設計 4.實驗 從上面的結構圖可以看出,s3c2440主要分...

s3c2440裸機 ADC程式設計

模數轉換器即a d轉換器,或簡稱adc,通常是指乙個將模擬訊號轉變為數碼訊號的電子元件。如圖,是把可變電阻上的電壓值變換的模擬訊號通過adc轉換,輸出數碼訊號。對於數碼訊號我們需要得到它的2個屬性 1.轉換精度 用多少位來儲存這個資料 假如是10 bit 那麼最大值0b111111111對應3.3v...