通過學習上期教程,D1 Dock Pro開發(fā)板的開發(fā)環(huán)境已搭建完成,接下來我們將開始學習各項基礎功能的開發(fā)。本期我們要演示的是D1 Dock Pr開發(fā)板的Button按鍵示例,旨在帶大家通過示例代碼了解按鍵的簡單觸發(fā)機制。
01
準備工作
建議在操作前先閱讀以下技術文章:
02
示例介紹
本示例主要使用了chip_d1組件驅動組件里的LRADC。LRADC模塊屬于輸入設備,一般包括各種按鍵的實現。當用戶按下按鍵的時候會觸發(fā)中斷,可以在中斷子程序里面進行判斷當前的按鍵屬于哪種行為,可以支持多種按鍵模式的觸發(fā)。
涉及到的主要函數如下:
// 初始化lradclradc_status_t csi_lradc_init(void);// 反初始化lradclradc_status_t csi_lradc_deinit(void);// 注冊回調函數lradc_status_t csi_lradc_register_callback(lradc_callback_t callback);
具體使用如下:
static void lradc_irq_callback(uint32_t irq_status, uint32_t data){// Here, we only catpure key button's up IRQ to confirm user press key one timesif (irq_status & LRADC_ADC0_UPPEND) {printf("user key is pressed one times ");}}static int test_lradc(void){int ret = -1;printf("Run lradc test ");ret = csi_lradc_init();if (ret) {printf("lradc init failed! ");return -1;}csi_lradc_register_callback(lradc_irq_callback);return 0;}
03
示例演示
3.1劍池CDK(以下簡稱CDK)演示
3.1.1示例獲取
雙擊打開CDK,點擊工具欄最右側的平頭哥圖標。點擊新建工程按鈕。

在搜索欄里輸入d1, 在結果里選擇d1_button_demo,點擊右側的創(chuàng)建工程,版本選擇v7.5.1。

3.1.2編譯
右鍵點擊d1_button_demo工程,選擇build,進行編譯,直到結束。

編譯完成后,可以在工程目錄下out文件夾里找到y(tǒng)oc_rtos_8M.img文件。
3.1.3下載
-
通過CDK燒寫
先連接好硬件JTAG。然后點擊紅色框框處的按鈕開始燒寫。


燒寫完畢之后,按復位鍵即可啟動。
-
通過全志工具燒寫
在沒有JTAG的情況下,只能通過全志的PhoenixSuit工具進行燒寫。將編譯出來的yoc_rtos_8M.img文件選中,

-
按住FEL按鈕,重新上電后,重啟后固件開始燒錄,直到完成。
-
如果當前鏡像支持xfex模式燒寫,直接在串口命令行執(zhí)行“xfex"命令,再執(zhí)行"reboot"命令進行重啟,重啟后固件開始燒錄,直到完成。
3.2命令行演示
3.2.1示例獲取
docker-ubuntu18:~$ mkdir testdocker-ubuntu18:~$ cd testdocker-ubuntu18:~$ yoc initdocker-ubuntu18:~$ yoc install sdk_app_d1 -b v7.5.1Start to install components...sdk_app_d1 (v7.5.1), clone https://gitee.com/yocop/sdk_app_d1.git ...…… (省略) ……d1_evb (v7.5.1), clone https://gitee.com/yocop/d1_evb.git ...chip_d1 (v7.5.1), clone https://gitee.com/yocop/chip_d1.git ...Download components finish.docker-ubuntu18:~/test$ lsboards components solutions
3.2.2編譯
docker-ubuntu18:~/test/solutions$ cd d1_button_demodocker-ubuntu18:~/test/solutions/d1_button_demo$ make…… (省略) ……LINK out/d1_button_demo/yoc.elfriscv64-unknown-elf-objdump -d out/d1_button_demo/yoc.elf > yoc.asmINSTALL yoc.elfGenerating yoc.binscons: done building targets.YoC SDK Done[] Create bin files[] Start to sign images with key:def_otp[] Sign [prim] with [def_otp][] rsa verify ok....[] Sign prim ok.----------------------------------------------------------------boot0, 0, 0, 0x00000000, 0x0000c000, 0x0000c000, boot0gpt, 0, 0, 0x0000c000, 0x00004000, 0x00010000, gptboot, 0, 0, 0x00010000, 0x00025000, 0x00035000, bootimtb, 0, 0, 0x00035000, 0x00002000, 0x00037000, imtbprim, 1, 0, 0x00037000, 0x00360000, 0x00397000, primlfs, 0, 0, 0x00397000, 0x00452000, 0x007e9000misc, 0, 0, 0x007e9000, 0x00013000, 0x007fc000kv, 0, 0, 0x007fc000, 0x00004000, 0x00800000boot0, 49152 bytesgpt, 8192 bytesboot, 143896 bytesprim, 131228 bytesimtb, 8192 bytes----------------------------------------------------------------Create yoc_rtos_8M.img in out directory Success!
3.2.3下載
可以通過3.1.3的下載方式進行燒錄,也可以通過命令行進行燒錄。
命令行燒錄之前要先連接好T-HeadDebugServer。然后在終端輸入make flashall命令:
:~/.../solutions/d1_button_demo > make flashall1700] I am RISC-VProgram partition: boot0 address: 0x0, size 49152 byteerasing...program 00x0000c000, 100%Program partition: gpt address: 0xc000, size 8192 byteerasing...program 00x0000e000, 100%Program partition: boot address: 0x10000, size 142980 byteerasing...program 0x00032000, 100%Program partition: imtb address: 0x35000, size 8192 byteerasing...program 00x00037000, 100%Program partition: prim address: 0x37000, size 131072 byteerasing...program 00x00057000, 100%:~/.../solutions/d1_button_demo >
04
運行
重新上電或按下RST鍵,系統(tǒng)啟動,串口會有以下打印信息,表示系統(tǒng)運行成功。
##YoC###[Feb 7 2022,1148]cpu clock is 1008000000HzRun lradc test

當按下對應的按鍵之后會有相應的打印信息輸出:
user key is pressed one times
05
下期預告
本文介紹了D1 Dock Pro開發(fā)板的按鍵使用示例,開發(fā)者可以通過示例代碼了解按鍵的簡單觸發(fā)機制。下期內容,我們將為大家講解D1 Dock Pro的LED閃爍例程。歡迎大家繼續(xù)關注。
-
按鍵
+關注
關注
4文章
229瀏覽量
58449 -
開發(fā)板
+關注
關注
26文章
6209瀏覽量
115854 -
Button
+關注
關注
0文章
16瀏覽量
8001
原文標題:RISC-V大賽開發(fā)套件詳解(十):D1 Dock Pro開發(fā)板Button按鍵示例演示
文章出處:【微信號:芯片開放社區(qū),微信公眾號:芯片開放社區(qū)】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
平頭哥D1 DocK Pro開發(fā)板上手評測
如何在D1哪吒開發(fā)板商適配或者移植阿里小程序呢
Wemos D1 mini 開發(fā)板介紹
「哪吒開發(fā)板」用Rust 探索RISC-V主板D1之GPIO
符合Open Board規(guī)范的首款開發(fā)板全志科技D1哪吒開始正式發(fā)售
全志D1哪吒 RISCV64開發(fā)板上手評測
全志D1芯片的啟動流程最底層分析
Wemos D1 mini開發(fā)板初用
Lichee RV Dock開發(fā)及使用方法
【Sipeed M2 Dock開發(fā)板試用體驗】HELLOWORLD
Comake D1 開發(fā)板 快速開始
D1 Dock Pr開發(fā)板的Button按鍵示例
評論