s3c2440交叉编译工具
㈠ 如何加nettools交叉编译好,使它用于S3C2440
首先需要其源代码,然后下载相应的交叉编译工具链,安装完成后世返再进行编译。一般需要修改下配置再编译,很多选项需要尝试进行。在这过程中可能需要其它库搜拍饥,贺尺还需要逐一下载编译。
㈡ linux内核移植需要哪些知识点
1、获得内核源码:从Linux内核的官网可获得相应的内核源码,这里以2.6.31.1为例。x0dx0ax0dx0a2、解压源码,进入目录:x0dx0a#tar xjvf linux- 2.6.31.1.tar.bz2x0dx0a#cd linux-2.6.31.1x0dx0ax0dx0a3、修改Makefile的183 行:x0dx0aARCH ?= arm <—指定系统硬件架构x0dx0aCROSS_COMPILE ?= arm-linux- <—指定交叉编译器x0dx0ax0dx0a4、修改时钟:x0dx0a修改arch/arm/mach-s3c2440/mach-smdk2440.c 的163行x0dx0astatic void __init smdk2440_map_io(void)x0dx0a{x0dx0as3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));x0dx0as3c24xx_init_clocks(12000000); <—输入时钟为12MHzx0dx0as3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs));x0dx0a x0dx0a}x0dx0a这个一定要设置对,否则会打印出乱码。x0dx0ax0dx0a5、修改机器码(根据实际情况,这个要和bootloader的匹配):x0dx0a修改:arch/arm/tools/mach-types的379 行:x0dx0as3c2440 ????????? XXX <—后面那个数就是机器码 (我用的天嵌开发板的机器码是168)x0dx0a x0dx0a6、配置:x0dx0a#make menuconfig <—进入图形化配置界面x0dx0a在配置菜单中选择这一项:"Load an Alternate Configuration File" ,输入2440的默认配置文件:arch/arm/configs/s3c2410_defconfig ,这个文件就是 S3C24XX 系列开发板板级支持包(BSP)然后选择 OK,按回车。x0dx0a进入"System Type"选项单,里面的选项保持默认在"S3C24XX Machine"选项中只配置这几项(其他的选项取消):x0dx0aS3C2410 Machine --->x0dx0a[*] SMDK2410/A9M2410x0dx0aS3C2440 Machine --->x0dx0a[*] SMDK2440x0dx0a[*] SMDK2440 with S3C2440 cpu moudlex0dx0ax0dx0a配置完后,回到主菜单,选择这一项"Save an Alternate Configuration File" ,输入要保存的 x0dx0a配置文件名称:.config (默认)或自己取名:TQ2440_config,退出,编译内核: #make zImagex0dx0a说明:以后移植过程中的配置、编译,都是按这个步骤进行,但是只需要保存一次配置文件,以后就不需要再保存配置文件了,配置完后可以直接退出。x0dx0a编译完后,会在arch/arm/boot下生成zImage内核镜像文件,可以修改该目录下的Makefile, 在第57行下面添加:仿消码x0dx0a@cp -f arch/arm/boot/zImage zImagex0dx0a@echo Kernel: $@ is ready 'x0dx0a x0dx0a这样执行make zImage后,就把生成的zImage拷到内核根目录下。x0dx0a如果希望在在执行make distclean时,也同时把zImage删除,可以修改内核根目录下Makefile 的第备哪1247行,在后面加上:x0dx0a-type f -print | xargs rm -f rm zImagex0dx0a把 zImage 镜像烧进 NandFlash 跑一下,看是否正常打印出信息,如果第一步能正常引导内核,那就开始进行。然后添加驱动。x0dx0ax0dx0a注意,桥拿系统启动最后可能会出现这个错误:x0dx0aKernel panic - not syncing: Attempted to kill init!x0dx0a然后出打印出一些很乱的东西。因为用4.x.x版本的交叉编译器使用EABI,但内核默认是不支持EABI编译的,所以编译出的系统会报错,但用3. x.x版本的编译器就不会出现这个问题。解决办法是,配置内核支持EABI编译:x0dx0aKernel Features --->x0dx0a[*] Use the ARM EABI to compile the kernelx0dx0a[*] Allow old ABI binaries to run with this kernel (EXPERIMENTA) 6
㈢ s3c2440 或者 c语言问题
你实际定义了两个变量i,一个是全局变量i,段族一个是局部变量i,当你运行main函数,局部变量i屏蔽全局变量i,也就是说全局变量不起陆绝作用,全局变量才起作用。而你用串行输出握悉弊i的值,你输出的是全局变量i,但是mmain里操作的是局部变量i,当然显示没有变量。当你定义到main里面,就是只有一个局部变量i了,串行输出当然在变化。
㈣ 编译u-boot时printf未定义是什么意思
用函数指针, 把printf的芦卖轮地址强转成 函数类型 再调用 , 具体地址用命令能查 还配宴是开发手册上有 我陪信就忘了
㈤ 我是天嵌s3c2440的板子,现在Linux移植,一直按厂家手册做的,可是make menuconfig的时候总是出现如下错误
/bin/sh: line 1: gcc: command not found
注意提示,是 gcc 这个命令未找到,而不是 arm-linux-gcc 这个命令未找到。
而且再看第一行提示
HOSTCC scripts/basic/fixdep
这行里面的 HOSTCC ,HOST 一般对于 Linux 来说是本地的东西意思,也就是说这行用的是当前系统使用的 cc (这个 cc 是 C Compiler 的意思,gcc 命令是 GNU Compiler Collection 的 cc )。也就是说,当前系统的 gcc (一般习惯下没有前缀的 gcc 就是本地 GCC )没有找到。
所以充分表明你根本不会 Linux 就去弄嵌入式……
㈥ s3c2440的timer程序,我用交叉编译中的arm-linux-objmp编译出来的反汇编代码,想看看程序是如何跳转的
你好,请问你是怎么编译出这个反汇编代码,
㈦ 嵌入式软件开发要学什么推荐一下书籍
《嵌入式Linux应用开发完全手册》以S3C2410、S3C2440开发板为例,从分析硬件上电执行的第一条指令开始,到构造出一个类似PDA、基于Linux的桌面GUI系统,带领读者学习、掌握从最底层到最高层的软件编写方法。
《嵌入式Linux应用开发完全手册》全面介绍了嵌入式Linux系统开发过程中,从底层系统支持到上层GUI应用的方方面面,内容涵盖Linux操作系统的安装及相关工具的使用、配置,嵌入式编程所桥滚需要的基础知识(交叉编译工具的选项设置、Makefile语法、ARM汇旅消凯编指令等),硬件部件的使用及编程(囊括了常见硬件,比如UART、I*IC、LCD等),UBoot、Linux内核的分析、配置和移植,根文件系统的构造(包括移植busybox、glibc、制作映象文件等),内核调试技术(比如添加kgdb补丁、栈回溯等),驱动程序编写及移植(LED、按键、扩展串口、网卡、硬盘、SD卡、LCD和USB等),GUI系统的移植(包拆唤含两个GUI系统:基于Qtopia和基于X),应用程序调试技术。
《嵌入式Linux应用开发完全手册》从最简单的点亮一个LED开始,由浅入深地讲解,使读者最终可以配置、移植、裁剪内核,编写驱动程序,移植GUI系统,掌握整个嵌入式Linux系统的开发方法。
1、Linux基础
安装Linux操作系统Linux文件系统Linux常用命令Linux启动过程详解。
2、Shell编程基础
Shell简介认识后台程序Bash编程熟悉Linux系统下的编辑环境。
3、Linux下的C编程基础
linuxC语言环境概述G使用方法Gdb调试技术。
4、嵌入式系统开发基础
嵌入式系统概述交叉编译配置TFTP服务配置NFS服务下载Bootloader和内核嵌入式Linux应用软件开发。
4、嵌入式系统移植
Linux内核代码平台相关代码分析ARM平台介绍平台移植的关键技术移植Linux内核到ARM平台了解移植的概念能够移植Linux内核移植Linux2.6内核到ARM9开发板。
5、嵌入式Linux下串口通信串行I/O的基本概念嵌入式Linux应用软件开发流程Linux系统的文件和设备。
6、嵌入式系统中多进程程序设计Linux系统进程概述嵌入式系统的进程特点进程操作守护进程相关的系统调用了解Linux系统中进程的概念。
网上很多~可以先从虚拟机玩起。
A.一般安装一个VMWARE虚拟机,再从网上下载个RedHat9.0的光盘镜像。
这个比较适合入门linux,当然也有Cygwin的,不过不推荐。
B.然后就可以按照上面的步骤学起来了,等把linux的shell和g,gdb,系统编程,gui(QT,miniGUI,MicroWin等等)玩好之后,可以买个开发板了,这里就不说明具体品牌了,2410/2440开发板很多的。
C.然后开始玩开发板,常用的代码编辑工具有UE。
还有代码比较工具。
当然还有ADS1.2,这个是必不可少的,可以先把ARM开发板当单片机开发板玩!先熟悉具体硬件设备的使用,如UART,SPI,LCD控制器等,最后再去玩Bootloader,系统移植,内核,文件系统,应用编程,驱动编程。。。
㈧ ubuntu 12.04内核3.2.0-60搭建ARM S3C2440 交叉编译环境要选择哪个版本的ARM-LINUX-GCC啊谢谢
交叉编译器与ubuntu上的gcc版本可以不一样的,交叉编译器我用arm-linux-gcc-4.3.2正常。
㈨ arm嵌入式linux qt入门问题请教
1、qt-x11是建立在X11图开库上的,X11图形库又是建军在FRAMBUFFER上的,FRAMBUFFER是linux内核的图形库,X11系统资源需求大,不能用于嵌入式,所以qt-embedded产生了,它不是建立在X11图形库上的,它是直接建立在FRAMBUFFER上的,占系统资源极少,可以在嵌入式上使用。qtopia-core这个概念是相对于qtopia提出的。它就是qt-embedded。而qtopia是QT公司的一个嵌入式桌面系统,目前已停止开发了。
2、如果arm上没有qt库,不能运行QT程序,必须把相应的QT库按装到ARM板上。
3、qmake产生makefile,make根据makefile调用gcc进行编译。
4、qt-embedded-linux-opensource-src-4.4.3.tar.gz是用在嵌入式上的QT开发库。用法与qt-4.4.3-x11版的用法一样。
5、没有办法仿真,只能先进行qt-embedded的移植工作。但是开发qt-embedded程序时,到是可以在PC机上先用qvfb仿真调试的。
6、qt-embedded库先交叉编译,完成后下载到开发板上,以后开发应用程序时,qt库不用再下载的。
7、写qt程序需要4.0版以上的交叉编译器。网上可以下载现成。
8、这是三个不同版本的gcc交叉编译器,都老了。目前至少应该使用gcc 4.0以上的。
9、肯定是不行的。
10、呵呵,我也是从新手过来的。也问过类似的小白问题。