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