亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

Cubieboard2裸機開發之(三)C語言操作LED

2024-06-28 13:27:25
字體:
來源:轉載
供稿:網友
Cubieboard2裸機開發之(三)C語言操作LED

前言

前面通過匯編語言點亮LED,代碼雖然簡單,但并不是很直觀。這次使用熟悉的C語言來控制LED,但是需要注意的地方有兩點,第一,要想使用C語言,首先需要在調用C語言代碼之前設置好堆棧;第二,調用C語言函數時,是需要相對跳轉還是絕對地址跳轉,還是兩者都可以,這就需要知道代碼是否運行在鏈接地址處,是位置無關的還是位置有關的。從前面分析可以知道,我們的代碼是運行在鏈接地址處的,因此可以用直接進行函數的調用。

一、目的

使用C語言的方式操作板載LED。

二、源代碼說明

start.S文件。首先禁止CPU的IRQ和FIQ,設置為管理模式,然后設置堆棧指針,最后調用C語言的main函數。

 1 /* 2  * (C) Copyright 2014 conan liang <lknlfy@163.com> 3  *  4  */ 5  6 /* global entry point */ 7 .globl _start 8 _start: b    reset 9 10 reset:11     /* disable IRQ & FIQ, set the cpu to SVC32 mode */12     mrs r0, cpsr13     and r1, r0, #0x1f14     teq r1, #0x1a15     bicne r0, r0, #0x1f16     orrne r0, r0, #0x1317     orr r0, r0, #0xc018     msr cpsr, r019     /* setup stack, so we can call C code */20     ldr sp, =(1024 * 10)21     /* call main function */22     bl main23 loop:24     b loop

main.c文件。首先初始化LED所在IO管腳,設置為輸出功能,并且輸出低電平,即一開始兩個LED是熄滅的。

 1 #include "led.h" 2  3 /* just for test */ 4 static void delay(void) 5 { 6     unsigned int i; 7  8     for (i = 0; i < 50000; i++); 9 }10 11 /* C code entry point */12 int main(void)13 {14     /* init PIO */15     led_init();16 17     while (1) {18         /* two LEDs on */19         set_led_on();20         delay();21         /* two LEDs off */22         set_led_off();23         delay();24     }25     26     return 0;27 }

led.c文件。LED驅動程序,一個初始化函數,一個使兩個LED同時點亮函數,一個同時使兩個LED同時熄滅函數。

 1 #include "led.h" 2 #include "io.h" 3  4 /* set two LEDs on */ 5 void set_led_on(void) 6 { 7     unsigned int tmp; 8      9     /* PH20 and PH21 output 1 */10     tmp = readl(PH_DAT);11     tmp |= (0x1 << 20);12     tmp |= (0x1 << 21);13     writel(tmp, PH_DAT);14 }15 16 /* set two LEDs off */17 void set_led_off(void)18 {19     unsigned int tmp;20 21     /* PH20 and PH21 output 0 */22     tmp = readl(PH_DAT);23     tmp &= ~(0x1 << 20);24     tmp &= ~(0x1 << 21);25     writel(tmp, PH_DAT);26 }27 28 /* init PIO */29 void led_init(void)30 {31     unsigned int tmp;32     33     /* set PH20 and PH21 output */34     tmp = readl(PH_CFG2);35     tmp &= ~(0x7 << 16);36     tmp &= ~(0x7 << 20);37     tmp |= (0x1 << 16);38     tmp |= (0x1 << 20);39     writel(tmp, PH_CFG2);40     /* set PH20 and PH21 output 0 */41     tmp = readl(PH_DAT);42     tmp &= ~(0x1 << 20);43     tmp &= ~(0x1 << 21);44     writel(tmp, PH_DAT);45 }

三、驗證

使用arm-linux-gnueabihf工具編譯后生成led_c.b文件,再使用mksunxiboot工具在led_c.b文件前面加上一個頭部,最終生成led_c.bin文件,使用以下命令將led_c.bin文件燒寫到TF中:

#sudo dd if=./led_c.bin of=/dev/sdb bs=1024 seek=8

將TF卡插入Cubieboard2,上電即可看到兩個LED同時閃爍。效果不好用圖片展示,因此就不上圖了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品福利在线| 国产精品电影网| 三级精品视频久久久久| 欧美日韩国产成人在线观看| 北条麻妃99精品青青久久| 日韩成人在线网站| 日韩在线激情视频| 国产伦精品一区二区三区精品视频| 日韩精品久久久久久久玫瑰园| 影音先锋欧美在线资源| 久久久久久久亚洲精品| 日韩av片永久免费网站| 一本色道久久综合狠狠躁篇的优点| 日韩av网址在线观看| 亚洲男人天堂2019| 久久久久久久久综合| 色偷偷av一区二区三区| 欧美性猛交xxxxx免费看| 国产成人av在线播放| 亚洲精选在线观看| 欧美精品精品精品精品免费| 欧美一区二区影院| 日韩中文字幕不卡视频| 国产欧美日韩丝袜精品一区| 青青久久av北条麻妃海外网| 自拍视频国产精品| 亚洲在线一区二区| 欧美日韩视频免费播放| 亚洲一级一级97网| 亚洲欧美一区二区三区情侣bbw| 久久久亚洲影院| 成人亚洲欧美一区二区三区| 亚洲欧美国产高清va在线播| 精品成人69xx.xyz| 久久久国产精彩视频美女艺术照福利| 亚洲久久久久久久久久久| 亚洲精品少妇网址| 色综合天天综合网国产成人网| 欧美国产日产韩国视频| 7777精品视频| 91理论片午午论夜理片久久| 日韩欧美有码在线| 亚洲第一视频网站| www.午夜精品| 欧美一级片免费在线| 国产成人精品免费视频| 岛国视频午夜一区免费在线观看| 人人爽久久涩噜噜噜网站| 亚洲欧美综合区自拍另类| 在线亚洲欧美视频| 欧美国产日产韩国视频| 一区二区三区亚洲| 久久精品亚洲94久久精品| 在线观看91久久久久久| 中文字幕免费精品一区| 日韩视频免费观看| 亚洲久久久久久久久久久| xxav国产精品美女主播| 国产成人精品视频在线| 亚洲视频网站在线观看| 久久久久久国产精品美女| 日韩精品免费在线观看| 亚洲欧美一区二区三区情侣bbw| 欧美高跟鞋交xxxxhd| 日韩激情视频在线播放| 久久精品成人一区二区三区| 亚洲第一精品福利| 久久久综合av| 日本一区二区不卡| 九九视频直播综合网| 亚洲精品久久久久久久久| 美女视频久久黄| 久久精品免费播放| 国产精品露脸av在线| 欧美日韩亚洲激情| 日韩精品丝袜在线| 久久久久久尹人网香蕉| 欧美成人一区二区三区电影| 日韩av在线直播| 亚洲国产日韩精品在线| 国自在线精品视频| 一本色道久久综合狠狠躁篇怎么玩| 日本精品久久中文字幕佐佐木| 在线日韩欧美视频| 久久综合五月天| 97久久精品在线| 亚洲精品国产精品乱码不99按摩| 欧美主播福利视频| 亚洲视频在线看| 国产精品久久久久久久电影| 国产精品一区二区久久精品| 亚洲精品久久久久久久久久久久| 日韩中文字幕网| 欧美高清激情视频| 国产精品久久久久影院日本| 国产精品久久久久久久久久久久久| 国产不卡av在线| 日韩在线精品一区| 国产精品日韩欧美综合| 久久在线视频在线| 精品久久香蕉国产线看观看gif| 国产一区二区久久精品| 91精品久久久久久久久久| 97av在线视频免费播放| 国产免费久久av| 国产噜噜噜噜噜久久久久久久久| 亚洲欧美日韩精品久久亚洲区| 精品国产91乱高清在线观看| 亚洲国产欧美自拍| 欧美日韩亚洲一区二区三区| 国产精品黄色影片导航在线观看| 美女久久久久久久| 欧美成人精品在线播放| 中文字幕日韩精品在线| 麻豆国产va免费精品高清在线| 亚洲国产精品yw在线观看| 久久精视频免费在线久久完整在线看| 国产精品视频网| 欧美一级黄色网| 日韩大片免费观看视频播放| 国产精品欧美风情| 在线观看中文字幕亚洲| 亚洲激情成人网| 综合欧美国产视频二区| 欧美黑人极品猛少妇色xxxxx| 成人免费黄色网| 欧美wwwwww| 日韩成人激情在线| 国产日韩欧美夫妻视频在线观看| 456国产精品| 亚洲精品成a人在线观看| 81精品国产乱码久久久久久| 日韩大陆欧美高清视频区| 日韩中文在线视频| 成人精品久久一区二区三区| 欧美影院久久久| 色综合伊人色综合网| 成人深夜直播免费观看| 亚洲春色另类小说| 欧美在线视频观看| 精品在线欧美视频| 日韩欧美国产高清91| 久久久www成人免费精品张筱雨| 久久久成人的性感天堂| 亚洲综合国产精品| 综合av色偷偷网| 亚洲天堂av在线免费观看| 成人看片人aa| 欧美激情网友自拍| 亚洲精品久久视频| 亚洲欧美在线看| 日韩视频免费在线| 91欧美精品成人综合在线观看| 欧美日韩亚洲一区二| 美女国内精品自产拍在线播放| 亚洲2020天天堂在线观看| 国产成人精品a视频一区www| 久热精品视频在线免费观看| 国产日韩在线播放| 久久精品视频免费播放| 亚洲网站在线观看| 欧美国产高跟鞋裸体秀xxxhd| 亚洲成人教育av| 精品久久久久久久久久|