0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式技術(shù)之GPIO控制LED工作原理

454398 ? 來源:博客園 ? 作者:wanglinwei ? 2020-09-24 10:59 ? 次閱讀

基本概念:

1.GPIO--通用IO口,通過芯片針腳來控制或讀取外設(shè)的數(shù)據(jù)。

2.GPIO口的使用原理,通過設(shè)置GPXXCON, GPXXDAT, GPXXPUL等寄存器來設(shè)置GPIO口的狀態(tài)。

原理圖:

硬件相關(guān)的部分,一定要閱讀原理圖,然后通過查找SoC的用戶手冊來查找相應(yīng)的寄存器設(shè)置即可。

底板電路圖:

核心板電路圖:

可知在OK6410上4個LED燈是通過GPM這一組的GPIO口控制的,分別是GPM0-GPM3四組。

然后打開S3C6410X User's Manual,查找GPM相關(guān)的寄存器:

通過上面內(nèi)容找到:

GPMCON 地址 0x7F008820

GPMDAT 地址 0x7F008824

由于LED連接著GPM0-GPM3,所以通過上面的內(nèi)容可以知道,GPMCON設(shè)置的值應(yīng)該為0x00001111,意思是將GPM0-GPM3設(shè)置為輸出,這樣通過設(shè)置GPMDAT[5:0]來控制響應(yīng)針腳的高低電平,使LED亮或滅。

代碼:(以下代碼參考了友善之臂Tiny6410的匯編代碼,并非原創(chuàng)

匯編代碼:

start.S

Makefile:

1 led.bin: start.o

 2         arm-linux-ld -Ttext 0x50008000 -o led.elf $^
 3         arm-linux-objcopy -O binary led.elf led.bin
 4         arm-linux-objdump -D led.elf > led_elf.dis
 5 %.o : %.S
 6         arm-linux-gcc -o $@ $< -c
 7 
 8 %.o : %.c
 9         arm-linux-gcc -o $@ $< -c 
10 
11 clean:
12         rm *.o *.elf *.bin *.dis  -rf

然后make,可以得到led.bin,通過tftp下載到開發(fā)板中:

然后就可以看到OK6410板上的四個LED燈開始一起閃爍。

總結(jié):

1.GPIO口的使用其實是SoC外設(shè)控制中最簡單的,只要抓住GPIO的幾個寄存器,將他們的值設(shè)置正確,就可以完成相應(yīng)的控制功能。

2.一定要學會查看SoC的User's Manual的方法,這樣當SoC換成其他品牌時,可以以不變應(yīng)萬變。

3.使用ld來鏈接.o文件時,一般會指定-Ttext選項,表示該代碼會在內(nèi)存的哪個地址加載,通過查看User's Manual,你可以決定這個地址的范圍,如下圖,0x50000000-0x6FFFFFFF地址區(qū)間映射到DRAM上,所以絕大部分的資料中,S3C6410中的內(nèi)存地址都是0x5xxxxxxx類似的地址。也有一些0xcxxxxxxx類似的地址,這是打開SoC中的MMU后進行物理地址和虛擬地址映射后的結(jié)果,如果打開了MMU,就可以使用0xcxxxxxxx這樣的地址,否則無法使用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1592

    瀏覽量

    107768
  • 嵌入式技術(shù)
    +關(guān)注

    關(guān)注

    10

    文章

    360

    瀏覽量

    35521
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1189

    瀏覽量

    51847
收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被稱為嵌入式系統(tǒng)的核心組件,是一種用于控制和數(shù)據(jù)處理的計算機硬件,其設(shè)計旨在嵌入特定設(shè)備中執(zhí)行專門任務(wù)。嵌入式主板如同是設(shè)備
    的頭像 發(fā)表于 09-30 10:05 ?327次閱讀

    嵌入式linux開發(fā)板芯片的工作原理

    嵌入式Linux開發(fā)板是一種基于Linux操作系統(tǒng)的嵌入式系統(tǒng)開發(fā)平臺,它廣泛應(yīng)用于工業(yè)控制、智能家居、智能交通、醫(yī)療設(shè)備等領(lǐng)域。 嵌入式Linux開發(fā)板概述
    的頭像 發(fā)表于 09-02 09:07 ?306次閱讀

    適合初學者的嵌入式項目有哪些?

    輸出引腳(GPIO)來控制LED燈的狀態(tài)。通過編寫簡單的C語言代碼,你可以實現(xiàn)LED燈的各種控制效果,如呼吸燈、流水燈、彩虹燈等。這個項目可
    發(fā)表于 07-11 10:23

    嵌入式系統(tǒng)怎么學?

    嵌入式系統(tǒng)之間或與外部設(shè)備的數(shù)據(jù)通信。 7、傳感器和執(zhí)行器:了解各種傳感器(如溫度傳感器、加速度傳感器等)和執(zhí)行器(如電機、舵機等)的工作原理和接口方式,以實現(xiàn)對外部環(huán)境的感知和控制。 8、
    發(fā)表于 07-02 10:10

    如何提升嵌入式編程能力?

    /C++:大多數(shù)嵌入式系統(tǒng)使用C或C++編程語言,因此深入學習這兩種語言是非常重要的。 8. 理解操作系統(tǒng):學習嵌入式操作系統(tǒng)(如FreeRTOS, VxWorks, Zephyr等)的工作原理
    發(fā)表于 06-21 10:01

    嵌入式系統(tǒng)軟硬件基礎(chǔ)知識大全

    嵌入式系統(tǒng)是現(xiàn)代科技發(fā)展的一個重要分支,廣泛應(yīng)用于工業(yè)控制、消費電子、醫(yī)療設(shè)備、汽車電子等領(lǐng)域。本文試圖全面解析嵌入式系統(tǒng)的軟基礎(chǔ)知識,以期讓讀者對這一技術(shù)有更深入的了解。
    發(fā)表于 05-09 14:12

    如何成為一名嵌入式C語言高手?

    的特性和工作原理對于嵌入式C語言編程至關(guān)重要。你應(yīng)該學習如何與外設(shè)進行交互、如何配置寄存器和控制器等。閱讀相關(guān)設(shè)備的數(shù)據(jù)手冊和技術(shù)文檔,參加硬件相關(guān)的課程,可以幫助你更好地理解
    發(fā)表于 04-07 16:03

    如何成為一名嵌入式C語言高手?

    的特性和工作原理對于嵌入式C語言編程至關(guān)重要。你應(yīng)該學習如何與外設(shè)進行交互、如何配置寄存器和控制器等。閱讀相關(guān)設(shè)備的數(shù)據(jù)手冊和技術(shù)文檔,參加硬件相關(guān)的課程,可以幫助你更好地理解
    發(fā)表于 03-25 14:12

    嵌入式fpga是什么意思

    嵌入式FPGA是指將FPGA技術(shù)集成到嵌入式系統(tǒng)中的一種解決方案。嵌入式系統(tǒng)是一種為特定應(yīng)用而設(shè)計的計算機系統(tǒng),它通常包括處理器、內(nèi)存、外設(shè)接口等組件,并且被
    的頭像 發(fā)表于 03-15 14:29 ?1169次閱讀

    嵌入式工程師需要掌握哪些技術(shù)?

    嵌入式工程師需要掌握哪些技術(shù)? 嵌入式系統(tǒng)是當今科技領(lǐng)域中的重要組成部分,它們存在于我們生活的方方面面,從智能手機到汽車控制系統(tǒng),從家電到醫(yī)療設(shè)備。因此,對于那些想要進入
    發(fā)表于 03-04 16:38

    聊聊嵌入式軟件分層

    今天以控制LED閃爍為例,聊聊嵌入式軟件分層
    的頭像 發(fā)表于 12-28 09:22 ?626次閱讀

    使用STM32 HAL庫進行GPIO控制的實例

    在基于STM32微控制器的嵌入式系統(tǒng)開發(fā)中,GPIO(GeneralPurposeInput/Output)控制是其中最基本、最常見的操作之一。通過使用STM32的HAL庫,可以輕松地
    的頭像 發(fā)表于 12-21 15:22 ?3039次閱讀

    什么是嵌入式板卡?

    嵌入式板卡是配備處理器、各種集成電路、接口和其他關(guān)鍵組件的電路板,所有這些組件都組裝起來以執(zhí)行特定功能。如USB、Ethernet、串口、GPIO等,以便連接外部設(shè)備和傳感器。它們還可能包括擴展插槽
    的頭像 發(fā)表于 12-20 16:17 ?782次閱讀
    什么是<b class='flag-5'>嵌入式</b>板卡?

    什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)的具體應(yīng)用

    嵌入式,一般是指嵌入式系統(tǒng)。用于控制、監(jiān)視或者輔助操作機器和設(shè)備的裝置。
    的頭像 發(fā)表于 12-20 13:33 ?2347次閱讀

    嵌入式核心板開發(fā)ESD靜電保護

    嵌入式核心板開發(fā)ESD靜電保護
    的頭像 發(fā)表于 11-28 17:55 ?580次閱讀
    <b class='flag-5'>嵌入式</b>核心板開發(fā)<b class='flag-5'>之</b>ESD靜電保護