【嵌入式linux】(第六步):使用eclipse集成開發(fā)環(huán)境開發(fā)第一個嵌入式Linux程序,并測試LED驅(qū)動
?
前言:使用eclipse開發(fā)嵌入式linux程序和pc linux程序幾乎沒有區(qū)別,并且使用eclipse圖形界面的集成開發(fā)環(huán)境上手簡單,方便學習,這里就教大家開發(fā)第一個嵌入式linux程序,程序功能就是測試上次寫好的LED驅(qū)動程序。
1.新建工程
輸入工程名稱,選擇可執(zhí)行程序,選擇cross GCC,下一步,選擇填寫arm-linux-gcc的路徑,這一步按照自己的實際情況進行填寫
點擊完成即可
2.輸入代碼并編譯
代碼很簡單的,只是一個實例
/****************************************************************************************************************
*文件名 : main.c
*主要功能 : LED測試
*作者 : 異靈元(cp1300@139.com)
*創(chuàng)建時間 : 2012下午11:52:59
*最后修改時間 : 2012下午11:52:59
*說明 : 使用OK6410開發(fā)板,測試自己寫的LED驅(qū)動
****************************************************************************************************************/
#include
#include
#include
#include
#include
#include
int main(void)
{
int fd;
int retval;
unsigned char led;
//LED測試
printf("LED test...n");
fd = open("/dev/OK6410_LED",O_RDWR); //open led,注意:是驅(qū)動模塊名,不是驅(qū)動文件名
if(fd == -1)
{
printf("open led error!n");
exit(-1);
}
else
{
printf("open led ok!n");
}
while(1)
{
for(retval = 0;retval < 4;retval ++)
{
led = 1 << retval;
led = ~led;
write(fd,&led,sizeof((unsigned char)1));
//read(fd,&led,sizeof((unsigned char)1));
//printf("LED = 0x%Xn",led);
usleep(1000 * 100); //100MS
}
for(retval = 2;retval > 0;retval --)
{
led = 1 << retval;
led = ~led;
write(fd,&led,sizeof((unsigned char)1));
//read(fd,&led,sizeof((unsigned char)1));
//printf("LED = 0x%Xn",led);
usleep(1000 * 100); //100MS
}
}
close(fd);
exit(0);
}
編寫完代碼后編譯,一般先保存,設置了編譯前自動保存只要按下 Ctrl + B 即可,編譯完成后會生成相關的可執(zhí)行程序,但是這個程序只能在ARM LINUX上執(zhí)行,不能在PC上面執(zhí)行。
3.執(zhí)行程序
將程序復制到開發(fā)板執(zhí)行,如果掛載了NFS就可以直接運行了,運行結果如下,當然還可以看到開發(fā)板的燈在來回跑動。。。
有的時候程序無法運行,需要添加可執(zhí)行屬性
?執(zhí)行:chmod +x xxxx????? xxxx即為編譯好的可執(zhí)行程序名稱。