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技術手冊
- rman技術速查手冊
- oracle create table官方手冊如何快速檢視學習方法Oracle
- mysql檢視--mysql 5.1 參考手冊MySql
- PostgreSQL學習手冊(系統檢視)SQL
- 物化檢視--資料倉儲手冊
- rman技術速查手冊(轉載)
- Linux的bash shell與man檢視手冊Linux
- 微服務 2.0 技術棧選型手冊微服務
- Oracle 巡檢手冊Oracle
- 播布客視訊-oracle健康檢查(巡檢)手冊筆記Oracle筆記
- 程式設計師技術進階手冊(一)程式設計師
- Turbolinux 各類技術文件和手冊(轉)Linux
- Django初級手冊3-檢視層與URL配置Django
- Django初級手冊4-表單與通用檢視Django
- 如何檢視手機登入IP地址
- ARM系列處理器應用技術完全手冊
- 【SpringBoot實戰】檢視技術-ThymeleafSpring Boot
- Django初級手冊2-管理介面的使用及定製Django
- Android手機如何檢視log日誌Android
- 程式設計師必備:技術面試準備手冊程式設計師面試
- 《開源技術選型手冊》即將閃亮上市
- 技術男對付淘寶控老婆不完全手冊
- 資料庫管理員必讀的十本技術手冊資料庫
- SAP ABAP CDS view 檢視的 Replacement 技術介紹View
- 如何檢視CRM WebUI,C4C和Hybris裡的頁面技術資訊WebUI
- Linux命令學習( 使用命令,檢視手冊,取別名等)Linux
- [雲安全技術和產品專區 ]如何手動檢測系統軟體漏洞
- 如何在iOS手機上檢視應用日誌iOS應用日誌
- 前端技術分享:教你玩轉vue-router命令檢視前端Vue
- iOS研發助手DoraemonKit技術實現之Crash檢視iOS
- 阿里技術參考圖冊阿里
- 面經手冊 · 第1篇《認知自己的技術棧盲區》
- 疫情之下,娛樂產業產能斷崖後的技術自救手冊產業
- Qt開發技術:圖形檢視框架(一)基本介紹QT框架
- 10 Oracle跑批慢常用檢查手冊Oracle
- 不重視技術,何談掌握核心技術?
- CSS Flexbox 視覺化手冊CSSFlex視覺化