2-如何檢視技術手冊
回顧:
開發板燒寫實驗
cpu: SEC_S5P6818X_Users_Manual_preliminary_Ver_0.00.pdf
LED驅動程式開發
1、電路原理圖
底板:x6818bv2.pdf
結論,如果讓LED1亮或者滅
其實就是讓導線GPIOC12出現低電平或者高電平
核心板:x4418cv3_release20150713.pdf
搜尋 “GPIOC12”
導線"GPIOC12"連線到了CPU W15管腳上了
結論,其實控制LED1的亮滅
實則就是控制cpu上的W15管腳出現低/高電平
問題:如何程式設計控制W15管腳上出現高電平或者低電平?
答案應該去cpu datasheet中找
2、cpu datasheet
P68:
w15管腳的可選功能1
該cpu上有160個GPIO管腳
GPIOCALTFN0 : 0xc001c020
[25:24], 01 配置為可選功能1(輸入輸出功能)
GPIOCOUTENB: 0xc001c004
[12] 1, 選擇輸出功能
GPIOCOUT: 0xc001c000
[12] 1/0 輸出高/低電平
3、C語言回顧
3.1 指標
常數:0xc001c020
地址:(unsigned int *)0xc001c020
讀其中內容 :*((unsigned int *)0xc001c020)
寫入內容: *((unsigned int *)0xc001c020) =100
訪問特殊功能暫存器的標準寫法
*((volatile unsigned int *)0xc001c020)
volatile的作用?使用場合?
防止編譯器的過度優化
3.2位操作
//錯誤的
*((volatile unsigned int *)0xc001c020)= 0x01000000
//有BUG 假如該暫存器原來bit25=1
*((volatile unsigned int *)0xc001c020)|= 0x01000000
//將24 25bit清0
*((volatile unsigned int *)0xc001c020)&= 0xfcffffff
//將24bit置1
*((volatile unsigned int *)0xc001c020)|= 0x01000000
//標準寫法
*((volatile unsigned int *)0xc001c020)&= ~(3<<24);
*((volatile unsigned int *)0xc001c020)|= (1<<24);
4、編輯程式
5、編譯程式
5.1 安裝交叉編譯工具
sudo chmod 777 /opt/ -R
cp /home/tarena/workdir/arm-linux-gcc/arm-cortex_a9-eabi-4.7-eglibc-2.18.tar.gz /opt/
cd /opt
tar xf arm-cortex_a9-eabi-4.7-eglibc-2.18.tar.gz
vi ~/.bashrc
export PATH=$PATH:/opt/arm-cortex_a9-eabi-4.7-eglibc-2.18/bin/
source /home/tarena/.bashrc
arm-cortex_a9-linux-gnueabi-gcc -v
5.2 編譯led.c
1)arm-cortex_a9-linux-gnueabi-gcc -c led.c -o led.o -nostdlib
2)arm-cortex_a9-linux-gnueabi-ld -nostdlib -nostartfiles -Ttext=0x48000000 -eled_test led.o -o led.elf
3)arm-cortex_a9-linux-gnueabi-objcopy -O binary led.elf led.bin
6、執行程式
cp led.bin /tftpboot/
在開發板上執行:
tftp 0x48000000 led.bin
go 0x48000000
相關文章
- xhEditor技術手冊
- Linux的bash shell與man檢視手冊Linux
- 【SpringBoot實戰】檢視技術-ThymeleafSpring Boot
- 微服務 2.0 技術棧選型手冊微服務
- 如何檢視手機登入IP地址
- Linux命令學習( 使用命令,檢視手冊,取別名等)Linux
- SAP ABAP CDS view 檢視的 Replacement 技術介紹View
- CSS Flexbox 視覺化手冊CSSFlex視覺化
- iOS研發助手DoraemonKit技術實現之Crash檢視iOS
- 前端技術分享:教你玩轉vue-router命令檢視前端Vue
- 如何檢視CRM WebUI,C4C和Hybris裡的頁面技術資訊WebUI
- 阿里技術參考圖冊阿里
- 如何在iOS手機上檢視應用日誌iOS應用日誌
- Qt開發技術:圖形檢視框架(一)基本介紹QT框架
- 活體檢測技術
- 面經手冊 · 第1篇《認知自己的技術棧盲區》
- 10 Oracle跑批慢常用檢查手冊Oracle
- 不重視技術,何談掌握核心技術?
- Linux雲端計算技術學習:怎麼檢視程式 psLinux
- mongodb 如何檢視索引MongoDB索引
- 如何檢視python文件Python
- 瑞芯微RK3128晶片手冊,RK3128 datasheet技術資料晶片
- 疫情之下,娛樂產業產能斷崖後的技術自救手冊產業
- Python技術分享:如何同時檢測多個人臉?Python
- 偽AP檢測技術研究
- 化妝品效能檢測裝置中的機器視覺技術視覺
- 從滑動視窗到YOLO、Transformer:目標檢測的技術革新YOLOORM
- Dapp眾籌系統開發應用技術(原始碼演示檢視)APP原始碼
- win10 如何檢視raw檔案 win10 如何檢視rawWin10
- 阿里面試技術手冊(二):大型網站架構演化發展歷程阿里面試網站架構
- 抖音短視訊營銷案例手冊
- 【技術向】SSH加密隧道流量攻擊與檢測技術加密
- 如何檢視selenium api文件API
- DBeaver如何檢視ER圖
- Logminer如何檢視日誌
- 如何檢視python原始碼Python原始碼
- postgresql如何檢視所有表SQL
- 目標檢測入門系列手冊七:目標檢測的產品應用實踐【工業視覺篇】視覺