娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年03月23日(星期日)

正在發生

2021年03月23日 | S3C6410開發板LED驅動代碼分析及測試代碼分析

發布者:Zhenxiang 來源: eefocus關鍵字:S3C6410  開發板  LED驅動 手機看文章 掃描二維碼
隨時隨地手機看文章

在本文中,我們對S3C6410開發板LED驅動代碼的實現過程進行分析,然后通過一個實例對LED進行控制。在本文的資源中包含了設備驅動的源碼和測試的源碼。


一、設備驅動源碼分析

設備驅動主要實現了模塊的初始化、模塊的卸載、io模塊操作的功能。


1、模塊初始化

模塊的初始化的源碼如下所示。


static int __init dev_init(void)

{

int ret;

 

{

unsigned tmp;

tmp = readl(S3C64XX_GPKCON);

tmp = (tmp & ~(0xffffU<<16))|(0x1111U<<16);

writel(tmp, S3C64XX_GPKCON);

tmp = readl(S3C64XX_GPKDAT);

tmp |= (0xF << 4);

writel(tmp, S3C64XX_GPKDAT);

}

 

ret = misc_register(&misc);

 

printk (DEVICE_NAME"tinitializedn");

 

return ret;

}


在初始化的源碼中,主要是對控制LED的GPIO引腳的寄存器進行設置,將GPIO設置為輸出,并將GPIO的初始狀態設置為高電平,燈是熄滅狀態。另外一個功能就是將LED的混雜設備注冊到內核中。


2、模塊卸載

模塊卸載的代碼比較簡單,如下所示。


static void __exit dev_exit(void)

{

misc_deregister(&misc);

}


模塊卸載代碼實現的功能是將LED的混雜設備從內核中取消注冊。


3、io 操作

io操作的代碼如下所示。


static long sbc2440_leds_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)

{

switch(cmd) {

unsigned tmp;

case 0:

case 1:

if (arg > 4) {

return -EINVAL;

}

tmp = readl(S3C64XX_GPKDAT);

tmp &= ~(1 << (4 + arg));

tmp |= ( (!cmd) << (4 + arg) );

writel(tmp, S3C64XX_GPKDAT);

//printk (DEVICE_NAME": %d %dn", arg, cmd);

return 0;

default:

return -EINVAL;

}

}


這個函數主要使用來對LED進行控制的,其中,cmd是LED的控制命令,1點亮,0熄滅。arg指明控制那個燈,0~3的取值,對應4個LED燈。控制命令最終會被寫入到控制GPIO引腳的數據寄存器中。


二、測試代碼分析

編寫了一個簡單的測試代碼對led的驅動進行測試,實現led燈的控制。代碼如下。


int main(int argc, char **argv)

{

int on;

int led_no;

int fd;

//驗證輸入

if(argc!=3||sscanf(argv[1],"%d",&led_no)!=1||sscanf(argv[2],"%d",&on)!=1||

on<0||on>1||led_no<0||led_no>3)

{

fprintf(stderr,"Usage: ./led_test 0|1|2|3 0|1n");

return 1;

}

fd = open("/dev/leds",0);

if(fd<0)

{

fprintf(stderr,"can't open leds!n");

return 1;

}

 

ioctl(fd,on,led_no);

close(fd);

return 0;

}


led的控制命令通過命令行輸入,命令輸入后先驗證命令是否有效,如果有效則打開leds設備文件,并通過ioctl函數對led進行控制。編譯代碼,并將可執行文件傳到開發板中。通過命令行就可以實現對led的控制。比如下面的命令,表示將led3點亮。


./led_test 3 1


關鍵字:S3C6410  開發板  LED驅動 引用地址:S3C6410開發板LED驅動代碼分析及測試代碼分析

上一篇:基于Linux系統和ZigBee的智能家居系統
下一篇:S3C6410開發板adc驅動代碼分析及測試代碼分析

推薦閱讀

為了迎接蘋果大單,三星去年設立A5廠,專責生產智能機OLED面板。不料iPhone X買氣遜于預期,蘋果智能機OLED訂單對半砍,A5廠前景打上問號。外傳三星A5廠也許會改成OLED電視面板的產線。韓媒Investor 22日報導,HI Investment & Securities分析師Jeong Seok-won推測,A5廠不會生產iPhone X的可撓式OLED面板,或許會改成OLED電視面板產線。三星沒有其...
有網絡就能買東西,何必一定要逛商場? 民宿又精致又實惠,何必非得去住酒店? 有電腦就可以隨時辦公,何必拘泥于寫字樓內的一隅天地? …… 在各種新技術和新模式的沖擊下,人們的生活和消費習慣發生了翻天覆地的轉變,由此帶來的是商超、酒店、寫字樓等各類商業建筑的飽和或過剩。數據統計顯示,以北京、上海為代表的一線城市的商業地產人均面積已經嚴重...
準備器材:MSP430開發板一塊,串口線,PC,串口調試助手(可從網上下載) 八位數據,1個停止位,9600波特率無校驗/********************************************************************//DM430-L型最小系統板串口測試程序,使用單片機的串口0//使用板載BSL模塊或者用戶外接串口線到DB9,要求是直連公對母串口線//使用串口調試助手發送數據到系統板,比...
選了好久的話題,這次想初步總結下電池包的熱管理相關知識點,對BMS來講,其實屬于周邊領域內容;目前BMS硬件與熱管理相關的好像只是控制水泵與采集水管溫度,更多設計內容都在軟件以及模組結構、熱仿真部門。(圖片來源于網絡) 這次主要目標是了解電動汽車上電池包的加熱與冷卻的代表方案。冷卻方案: 風冷風冷又分為自然冷卻與強制風冷。自然冷卻就是...

史海拾趣

問答坊 | AI 解惑

0947@52RD_高通各芯片.pdf

0947@52RD_高通各芯片.pdf…

查看全部問答∨

微弱電流測量及其干擾濾除的問題 已更新原理圖

本人對電化學實驗中的緩慢變化的直流進行測量,該直流變化范圍在nA(甚至更小)到mA級別,采用電流跟隨器轉換成電壓測量(采用OPA132或是CA3140或是OPA121或是OPA129),現在問題在于本人使用電阻R2、R4來模擬前端系統產生待測電流 i 進入電流跟隨 ...…

查看全部問答∨

hive問題

內核在加載完boot.hv后是不是加載system.hv的注冊表項。…

查看全部問答∨

NT還是WDM?

在XP下做一塊簡單的ISA的I/O板卡(不是即插即用)做設備驅動程序(用XP的DDK),是用NT還是用WDM?謝謝!…

查看全部問答∨

使用RegEnumKeyEx()函數枚舉組冊表的疑問?

使用RegEnumKeyEx()函數枚舉組冊表,遇到問題,發現該命令是用由個鍵的“最后子鍵”向上枚舉... 例子如下 BOOL CCameratestDlg::FineCISDevice() {         HKEY hKey_tmp = NULL;         HKEY hKey = N ...…

查看全部問答∨

請教各位高手一個PCI的問題

我們知道,PCI設備有三個空間——內存地址空間、IO地址空間和配置空間。由于PCI支持即插即用,所以PCI設備不是占用固定的內存地址空間或I/O地址空間,而是可以由操作系統決定其映射的基址。怎么配置呢?這就是配置空間的作用。 DW | Byte3 | Byte2 ...…

查看全部問答∨

用89C51的GATE位測量脈沖寬度

待測信號由P3.2接入,待測信號脈寬取5ms~50ms,脈寬值顯示在數碼管(共陽數碼管)上,顯示單位為ms.求...<img border="0" src="file:///C:/Users/Acer/Desktop/QQ截圖20120501230546.png"> [ 本帖最后由 寒雪劍91 于 2012-5-1 23:22 編輯 ...…

查看全部問答∨

我最近設計的LPC1700開發板

上圖:                                                   [ 本帖最后由 zha ...…

查看全部問答∨

求助:F28027的cmd文件中的“>>”和“|”

.cinit              : > FLASHA | FLASHC | FLASHD,       PAGE = 0    .pinit              : > FLA ...…

查看全部問答∨

Altium Designer 15安裝插件的詳細圖文教程

replyreload += \',\' + 1803894; 本帖最后由 小崇偉 于 2015-1-14 09:52 編輯 昨天晚上花了點時間把這個過程寫了一下,沒什么難的地方,在此奉獻給需要的小伙伴了。 記得幫忙頂貼,有問題可以加我QQ交流,僅限問題交流,其他的雜事沒空理會,謝 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 黑龙江省| 崇信县| 武城县| 怀仁县| 神池县| 鹿泉市| 建阳市| 荆州市| 静宁县| 赞皇县| 江阴市| 大渡口区| 江源县| 德昌县| 延长县| 大石桥市| 纳雍县| 金溪县| 陆良县| 乳源| 武宁县| 鲁甸县| 正定县| 共和县| 泽库县| 防城港市| 南江县| 汕尾市| 宜城市| 澄迈县| 昌乐县| 龙岩市| 军事| 娄烦县| 房产| 平远县| 郓城县| 沁源县| 武山县| 柯坪县| 太康县|