女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

嵌入式技術之GPIO控制LED工作原理

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

基本概念:

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

2.GPIO口的使用原理,通過設置GPXXCON, GPXXDAT, GPXXPUL等寄存器來設置GPIO口的狀態。

原理圖:

跟硬件相關的部分,一定要閱讀原理圖,然后通過查找SoC的用戶手冊來查找相應的寄存器設置即可。

底板電路圖:

核心板電路圖:

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

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

通過上面內容找到:

GPMCON 地址 0x7F008820

GPMDAT 地址 0x7F008824

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

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

匯編代碼:

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下載到開發板中:

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

總結:

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

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

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

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

    關注

    22

    文章

    1595

    瀏覽量

    109346
  • 嵌入式技術
    +關注

    關注

    10

    文章

    364

    瀏覽量

    40704
  • GPIO
    +關注

    關注

    16

    文章

    1271

    瀏覽量

    53568
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    飛凌嵌入式2025嵌入式及邊緣AI技術論壇圓滿結束

    飛凌嵌入式「2025嵌入式及邊緣AI技術論壇」在深圳深鐵皇冠假日酒店盛大舉行,此次活動邀請到了200余位嵌入式技術領域的
    的頭像 發表于 04-28 13:57 ?2483次閱讀
    飛凌<b class='flag-5'>嵌入式</b>2025<b class='flag-5'>嵌入式</b>及邊緣AI<b class='flag-5'>技術</b>論壇圓滿結束

    如何成為一名嵌入式軟件工程師?

    、Java等)和軟件開發工具,還需要對硬件的工作原理有深入的理解。 在團隊中,嵌入式軟件工程師往往扮演著核心角色,他們的工作直接關系到產品的性能、穩定性和用戶體驗。 02掌握核心技能與知識
    發表于 04-15 14:37

    飛凌嵌入式「2025嵌入式及邊緣AI技術論壇」議程公布

    4月22日,飛凌嵌入式“2025嵌入式及邊緣AI技術論壇”將在深圳舉行,論壇以“新生態,智未來”為主題,旨在匯聚行業智慧,探討嵌入式技術與邊
    的頭像 發表于 04-02 15:12 ?487次閱讀
    飛凌<b class='flag-5'>嵌入式</b>「2025<b class='flag-5'>嵌入式</b>及邊緣AI<b class='flag-5'>技術</b>論壇」議程公布

    嵌入式教育科普|GPIO接口全面解析

    知識的掌握直接影響著嵌入式項目實現功能的成效。本文將以GPIO接口為切入點,深入解析其工作原理技術特性,希望能幫助屏幕前想要學習嵌入式開發
    的頭像 發表于 03-05 11:11 ?1578次閱讀
    <b class='flag-5'>嵌入式</b>教育科普|<b class='flag-5'>GPIO</b>接口全面解析

    如何成為嵌入式開發工程師?

    ,無論是個人項目還是作為團隊的一員。- 嘗試從頭開始構建一些小的嵌入式系統,比如控制一個LED燈或者讀取傳感器數據。 8. 持續學習:- 隨著技術的發展,持續學習新的工具和
    發表于 02-19 10:39

    GPIO嵌入式系統中的作用

    在現代電子系統中,嵌入式系統因其小型化、低成本和高效率而變得越來越流行。這些系統廣泛應用于從簡單的家用電器到復雜的工業自動化設備。在這些系統中,GPIO(通用輸入/輸出)接口是連接微控制器與外部世界
    的頭像 發表于 01-09 09:45 ?770次閱讀

    為什么嵌入式驅動開發工程師可以拿高薪?

    。 為什么嵌入式驅動開發工程師可以拿高薪? 嵌入式驅動開發工程師屬于技術密集型工作,不僅需要深入了解硬件的工作原理,還需掌握各種編程語言
    發表于 01-07 16:56

    嵌入式好找工作嗎?

    功能穩定且智能化運行,再到工業領域里的自動化生產線,靠嵌入式設備精準控制生產流程,還有醫療設備中那些輔助診斷、精準治療的儀器等。可以說,它橫跨了消費電子、汽車、工業、醫療等眾多行業,行業覆蓋面如此
    發表于 12-16 15:43

    新手怎么學嵌入式?

    的基礎上增加了面向對象編程的特性,有助于編寫更復雜的嵌入式程序。 3. 學習硬件知識 嵌入式技術與硬件緊密相關,因此你需要了解一些基本的硬件知識。比如微控制器(MCU)、微處理器(
    發表于 12-12 10:51

    什么是嵌入式人工智能

    嵌入式人工智能是指將人工智能技術應用于嵌入式系統中的一種技術嵌入式系統是嵌入到其他設備或系統中
    的頭像 發表于 12-11 09:23 ?861次閱讀
    什么是<b class='flag-5'>嵌入式</b>人工智能

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

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

    嵌入式linux開發板芯片的工作原理

    嵌入式Linux開發板是一種基于Linux操作系統的嵌入式系統開發平臺,它廣泛應用于工業控制、智能家居、智能交通、醫療設備等領域。 嵌入式Linux開發板概述
    的頭像 發表于 09-02 09:07 ?717次閱讀

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

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

    嵌入式系統怎么學?

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

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

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