导航:首页 > 源码编译 > led交叉编译

led交叉编译

发布时间:2022-09-21 00:02:45

A. gcc一个led驱动,说没有linux/moles头文件,然后我去make moles_install,说没又arm-linux-gcc,但我装了

没有找到mole.h这个头文件,一般是你的内核地址不对。你需要看你编译的内核地址是否正确。

B. linux如何编译arm-2440的led跑马灯程序不是编译驱动程序

这是一个很简单的问题。使用ads生成二进制文件的时候会直接可执行的二进制文件的头去掉。如程序的执行地址,链接地址等等信息被去掉。但是在linux上你使用的arm-linux-gcc编译过后产生的只是linux 系统的可执行二进制文件,它能够被linux 内核所识别。但是他们不能直接作为裸板程序直接被开发板所执行。除了使用arm-linux-gcc 以外还要使用两个命名arm-linux-ld 和 arm-linux-obj 才能生成能直接被裸板执行的代码

原文地址:http://www.ebhou.com/post/armtest.html

今天在空间看到一个关于arm裸板代码的问题。这个问题对于老鸟来说都是简单得不能再简单的问题了。可是当时确把我给难住了,以前学习的时候没有少些过裸板代码。自己的电脑上至今还保留着lcd,触摸屏和 声卡的裸板驱动。才1年多点时间尽然自己只知道分三不,编译、链接、去掉elf头。而具体的步骤尽然只知道gcc 另外两部的命名尽然不知道参数是什么。惭愧啊!

今天保留过程于此。

做备忘只用,如果能够帮助到任何人那就不虚此写啊。

看过编译原理的人都知道我们一句简单的arm-linux-gcc 到达做了哪些工作。他并不是简单的把我们的原文件编译成我们可执行的二进制文件,在这个过程中他其实至少做了两部工作。“编译”和链接“当然这其中包含了很多关于编译原理的至少,由于本人才疏学浅说以也只能够简单的把他说成编译和链接了。如果需要跟深入的理解请查找相关”编译原理的书籍吧“

这里我们先介绍一下常用的gcc命令.

1.arm-linux-gcc -v 查看gcc 版本号

2.arm-linux-nm 查看一个.o文件所需要的库。

3.arm-linux-ld 链接命令

3.arm-linux-gcc 编译命令

4 arm-linux-objmp -h test 查看符号

-d 反汇编

5 arm-linux-as ls.S -o ls.o 将汇编原文件编译成.o文件

6 arm-linux-obj -I elf32-littlearm -O binary test test.bin 去掉二进制文件elf头。

现在我们来写一个arm裸板的LED闪灯程序 非常简单的。

源代码 led_test.c

void main()
{
int i=0;
volatile long *GPKCON0 = 0x7F008800;
volatile long *GPKDAT = 0x7F008808;
volatile long *GPKPUD = 0x7F00880C;

*GPKCON0 &= ~(0XFFFF <<16);
*GPKCON0 |= (0X1111 <<16);
while(1){
*GPKDAT &= ~(0XF <<4);
i=0xfffff;
while(i--)
;
*GPKDAT |= (0XF <<4);
i=0xfffff;
while(i--)
;
}
}

每隔大概3秒钟的时间LED闪烁一次。非常简单的一个程序。这里没有使用定时器啊 什么的知识简单的做循环来延时。注意 关于LED 的GPIO相关寄存器地址根据你自己的实际情况来。

编译过程

1 编译

arm-linux-gcc -c -march=armv4 test.c -o test.o

2.链接 http://www.ebhou.com/post/armtest.html

C. linux交叉编译生成的文件如何下载。

要把东西下到NOR FLASH要用JTAG吧,如果要验证可执行程序,下到NAND FLASH就好啦。下到NAND FLASH我一般用的是NFS传

D. 基于LPC2124LED流水灯C程序设计

如果单片机16个脚,那么用两层循环或者取余数搞定。两层循环i=0;无限循环{循环i=0 到i=15{ 点亮发光管i 延时(由你定) 熄灭发光管i}}

E. 怎么在linux下编译驱动程序我我按照别人写的LED启动程序,用交叉编译器arm-linux-gcc编译,总提示找不到

不改MAKEFILE文件,当然不能编译了,Linux的驱动就是这么搞的啊,没办法的,反正是批处理的,也就多花点时间嘛,你可以把一些不需要的驱动,选择不编译,这样就能加快速度了。给你个办法,在Windows虚拟机中安装交叉编译环境,你可以在Windows下编辑你的程序,Linux只起到编译的作用,这样,两个工作可以同时进行,有空你还可以上上网,这样你就不觉得时间长了。

F. linux 交叉编译器可以编写一个控制arn开发板led灯的程序吗

必须可以的
要不要操作系统干嘛啊
先在arm上上系统
然后在linux电脑上编写程序
其实就是驱动哈
交叉编译
移植
执行
ok

G. riotboard 使用什么交叉编译工具链

不需要改源码Makefile,只要在你的驱动目录下配置好Makefile里面的源码树路径就行了。

obj-m := led_ko.o
KDIR := /home/zs5577517/ti-ezsdk_dm816x-evm_5_03_01_15/board-support/linux-2.6.37-psp04.00.01.13.patch2
all:
make -C $(KDIR) M=$(PWD) moles ARCH=arm CROSS_COMPILE=/home/zs5577517/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-
clean:
rm -f *.ko *.o

H. 我在ubuntu9。04下,用arm-linux-gcc 交叉编译了一个led驱动程序。引用的内核源码放在/usr/src/linux2.6

如果你要编译一个 驱动 首先你那个 linux内核事编译好的。makefile 里面耀指向你的linux内核目录
你在试试

I. 嵌入式的一些基本问题

学Linux你以为只是亮个灯,写个IO口什么的啊。这些都只是嵌入式系统的皮毛而已,实话告诉你底层的最难,嵌入式领域驱动和硬件这块最麻烦。看来你基本不懂。
嵌入式复杂之处在于处理器可以不同,linux操作系统不同,移植绝对是难点。led照样可以写成你看不懂的形式。
gcc基本不用,用交叉编译器arm-gcc或者其他的gcc,Makefile你肯定没有写过,写过的话够你学很久。
led灯告诉你基本的驱动开发。但是驱动远远没有这么简单。呵呵,这是最最最简单的。
至于把开发板做成路由,你指的是无线还是什么,这里面涉及到网卡驱动,网络编程,因为没坐过这块所以也不好说,就这些吧,希望对你有帮助

J. linux 驱动交叉编译问题。

不需要改源码Makefile,只要在你的驱动目录下配置好Makefile里面的源码树路径就行了。

obj-m := led_ko.o
KDIR := /home/zs5577517/ti-ezsdk_dm816x-evm_5_03_01_15/board-support/linux-2.6.37-psp04.00.01.13.patch2
all:
make -C $(KDIR) M=$(PWD) moles ARCH=arm CROSS_COMPILE=/home/zs5577517/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-
clean:
rm -f *.ko *.o

阅读全文

与led交叉编译相关的资料

热点内容
程序员中的荣誉 浏览:270
java的封装性 浏览:385
命令提示符垃圾清理 浏览:801
javachar1 浏览:1001
lcd单片机投影仪用久了会发黄 浏览:751
王者荣耀游戏内进攻主宰命令 浏览:215
周立功单片机发展有限公司 浏览:612
iphone未成年怎么付款app 浏览:988
苹果app是英文怎么改 浏览:837
51单片机485通信 浏览:270
符咒全书pdf 浏览:565
海底捞app签到怎么弄不成了 浏览:862
安卓php服务器搭建 浏览:259
京东直营网挣用什么APP 浏览:825
杰克豆车机怎么安装app 浏览:32
app查余额怎么有两个金额 浏览:305
小程序仿今日头条源码 浏览:277
框架源码研读 浏览:447
仙侣奇缘3如何架设服务器 浏览:954
单片机RRC指令 浏览:889