今天,我們就站在巨人的肩膀上,利用內核開發者已經寫好的驅動來實現我們想要的功能。
應用層控制
除了可以在shell中通過echo
、cat
的方式控制Led,我們也可以在寫一個應用層程序來操作/sys/class/leds/
下的節點,應用層代碼:
#include < stdio.h >
#include < stdlib.h >
#include < unistd.h >
#include < errno.h >
#include < fcntl.h >
#include < string.h >
#include < sys/stat.h >
#include < sys/types.h >
#define LED_DEV_PATH "/sys/class/leds/led%d/brightness"
#define ON
#define OFF
int fs4412_set_led(unsigned int lednum, unsigned int mode)
{
int fd;
int ret;
char devpath[128];
char *on = "1n";
char *off = "0n";
char *m = NULL;
snprintf(devpath, sizeof(devpath), LED_DEV_PATH, lednum);
fd = open(devpath, O_WRONLY);
if (fd == -1) {
perror("fsled- >open");
return -1;
}
if (mode == ON)
m = on;
else
m = off;
ret = write(fd, m, strlen(m));
if (ret == -1) {
perror("fsled- >wrtie");
close(fd);
return -1;
}
close(fd);
return 0;
}
int main(int argc, char *argv[])
{
unsigned int lednum = 2;
while(1){
fs4412_set_led(lednum, on);
usleep(500000);
fs4412_set_led(lednum, OFF);
usleep(500000);
lednum++;
if (lednum > 5)
lednum = 2;
}
return 0;
}
上述應用層代碼執行后,led2會閃爍。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
led
+關注
關注
242文章
23306瀏覽量
661535 -
驅動
+關注
關注
12文章
1844瀏覽量
85355 -
Linux
+關注
關注
87文章
11319瀏覽量
209830 -
應用層
+關注
關注
0文章
46瀏覽量
11520
發布評論請先 登錄
相關推薦
嵌入式Linux字符驅動LED燈設計
要寫一個應用層的測試程序,用來測試驅動程序。我的測試程序為myled_test.c,要求在shell下能夠通過該測試程序來控制LED燈的亮滅。如:./myled_test on表示燈全
發表于 02-03 14:28
鴻蒙Hi3516 純手工打造從應用層到驅動層示例
在vendor\huawei\hdf\ 目錄,新建驅動層LED目錄,vendor\huawei\hdf\LED ;新建LED.c文件
發表于 11-06 09:56
【HiSpark AI Camera】鴻蒙Hi3516 純手工打造從應用層到驅動層示例
vendor\huawei\hdf\ 目錄,新建驅動層LED目錄,vendor\huawei\hdf\LED ;新建LED.c文件
發表于 11-07 15:41
如何在嵌入式linux中應用層操作gpio口
嵌入式linux文件io方式操作gpio口示例在嵌入式linux中應用層操作gpio口,如果懶得寫驅動或者懶得翻寄存器手冊,有一種簡單的方式
發表于 12-16 06:19
Linux驅動層的相關資料下載
// 再說明一下哈,你簡歷上寫了你會驅動層,面試官才問,你不寫,一般不會問。1、UBOOT的作用2、驅動包括哪幾種3、yaffs、jffs文件系統的不同4、應用層與
發表于 12-24 07:25
【學習打卡】OpenHarmony的應用層說明
應用程序進行通信。關于OSI(開放系統互連)網絡模型標準,可以參考下圖,OSI 網絡模型層是從硬件開始的較低級別到較高級別進行排列。需要注意的是應用層不是應用。相反,它其實是應用程序中的一個組件,我們可以
發表于 07-14 08:44
Linux驅動到底能不能在應用層開發驅動
的驅動程序也要跟著重新編譯,太麻煩了。因此,我建議同事把驅動寫到APP里面。同事大驚,Linux能在應用層開發驅動?
嵌入式Linux驅動 GPIO操作 包括驅動和應用層程序對驅動進行測試
文章目錄代碼驅動層代碼應用層代碼 測試驅動Makefile這里記錄的是嵌入式linux驅動對gp
發表于 11-02 14:36
?10次下載
Linux應用層操作寄存器
--- > [*] /dev/mem virtual device support Linux應用層操作寄存器 除了直接使用devmem,我們也可以在Linux應用層自己實現一個de
評論