(mini2440)建立交叉编译环境+配置linux内核

2020-05-18来源: eefocus关键字:mini2440  交叉编译环境  配置linux内核

系统ubuntu12.04(非虚拟机下)

mini2440

CPU型号:S3C2440AL-40

Nandflash型号:K9F1G08

Norflash型号:SST39VF1601

LCD:统宝 240 x 320

$:普通账户

#:root账户

*当shell下输入路径时可使用tab键自动补全


(一)建立交叉编译环境


1.将mini2440光盘中的linux文件夹拷贝到 /home/lianghuiyong 并改名为Linux_share

(其中两个文档为我后面添加进去的)

2.Ctrl+Alt+T打开shell

3.$ su - root (切换root权限)

4.# cd /home/lianghuiyong/Linux_share

5.解压安装arm-linux-gcc编辑器

# tar xvzf arm-linux-gcc-4.4.3.tar.gz  –C /        //注意:C后面有个空格

执行该命令,将把 arm-linux-gcc 安装到/usr/loca/arm/4.4.3 目录。这句来自mini2440用户手册,我发现其实是安装到 /opt/FriendlyARM/toolchain/4.4.3 目录


6.# vim /root/.bashrc

7.在最后一行添加:export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin    //opt/FriendlyARM/toolschain/4.4.3/bin 为arm-linux-gcc 环境变量

:wq保存退出。

# source ~/.bashrc

8.# sudo gedit /etc/environment

games后面添加标记部分

9.#  arm-linux-gcc -v         //gcc后面有空格

测试hello.c(这是在安装了第二部分的linux示例程序才有examples/hello目录)

# cd /opt/FriendlyARM/mini2440/examples/hello

# arm-linux-gcc -o hello hello.c

# ./hello

(二)安装源代码及其他工具

创建工作目录(以下都为root环境下):

# mkdir -p /opt/FriendlyARM/mini2440


1>>解压安装linux内核源代码

# cd  /opt/FriendlyARM/mini2440

# tar xvzf /home/lianghuiyong/Linux_share/linux-2.6.32.2-mini2440-20100106.tar.gz


2>>解压安装嵌入式图形系统qtopia源代码

# cd /opt/FriendlyARM/mini2440

# tar xvzf /home/lianghuiyong/Linux_share/x86-qtopia.tgz

# tar xvzf /home/lianghuiyong/Linux_share/arm-qtopia.tgz


3>>解压安装嵌入式图形系统 QtE-4.6.1 源代码

# cd /opt/FriendlyARM/mini2440

# tar xvzf /home/lianghuiyong/Linux_share/arm-qte-4.6.3-20100802.tar.gz


4>>解压安装busybox 源代码

# cd /opt/FriendlyARM/mini2440

# tar xvzf /home/lianghuiyong/Linux_share/busybox-1.13.3-mini2440.tgz


5>>解压安装 Linux 示例程序

# cd /opt/FriendlyARM/mini2440

# tar xvzf /home/lianghuiyong/Linux_share/examples-20100108.tgz


6>>解压安装 vboot 源代码

# cd /opt/FriendlyARM/mini2440

# tar xvzf /home/lianghuiyong/Linux_share/vboot-src-20100106.tar.gz


7>>解压安装 bootloader 源代码

# cd /opt/FriendlyARM/mini2440

# tar xvzf /home/lianghuiyong/Linux_share/bootloader.tgz


8>>解压创建目标文件系统

# cd /opt/FriendlyARM/mini2440

#tar xvzf /home/lianghuiyong/Linux_share/rootfs_qtopia_qt4-20100816.tar.gz


9>>解压安装目标文件系统映象制作工具 mkyaffs2image

# cd /opt/FriendlyARM/mini2440

# tar xvzf /home/lianghuiyong/Linux_share/mkyaffs2image.tgz –C /


10>>解压安装LogoMaker

# cd /opt/FriendlyARM/mini2440

# tar xvzf /home/lianghuiyong/Linux_share/logomaker.tgz –C /


(三)定制linux内核及制作文件系统


config_mini2440_x35 – 适用于 Sony 3.5” LCD 的内核配置文件

config_mini2440_t35  – 适用于统宝 3.5” LCD 的内核配置文件

config_mini2440_l80  – 适用于 Sharp 8” LCD(或兼容)的内核配置文件

config_mini2440_n35 – 适用于 NEC3.5” LCD 的内核配置文件

config_mini2440_h43 – 适用于 4.3” LCD 的内核配置文件

config_mini2440_a70 – 适用于群创 7” LCD 的内核配置文件

config_mini2440_vga1024x768 – 适用于 VGA 显示输出(分辨率 1024x768)模块的内核

配置文件


1.配置缺省文件config_t35 (统宝240x320)


# cd  /opt/FriendlyARM/mini2440/linux-2.6.32.2  

# cp config_mini2440_t35 .config

# make menuconfig

出现界面

不做更改,exit退出。这样做是为了生成相应配置(统宝240x320)的头文件。


2.编译内核


在/opt/FriendlyARM/mini2440/linux-2.6.32.2 目录下编译内核

#make zImage

编译结束后,会在 arch/arm/boot 目录下生成 linux 内核映象文件:zImage(zImage 可下载到开发板测试)


3.定制linux内核(根据用户手册来走一遍)


# cd  /opt/FriendlyARM/mini2440/linux-2.6.32.2  

# make menuconfig

出现配置选项:


3.1配置cpu

主菜单-->System --> Type S3C2400 Machines --> FriendlyARM Mini2440 development board

3.2配置lcd驱动

主菜单-->Device Drivers-->Graphics support-->Support for frame buffer devices-->Backlight-->LCD select-->3.5 inch 240x320 Toppoly LCD


3.3配置触摸屏

主菜单-->Device Drivers-->Input device support-->Touchscreens-->Samsung s3c24410 touchscreen input driver


3.4配置usb鼠标和键盘

主菜单-->Device Drivers-->hid devices-->USB Human interface Device


3.5 配置优盘

主菜单-->Device Drivers-->SCSI device support--> SCSI disk


3.6配置万能驱动USB摄像头

主菜单-->Device Drivers-->Multimedia devices-->Video capture adapters -->V4L USB devices-->GSPCA based webcams-->ALi USB m 5602 Camera Driver


3.7 配置CMOS摄像头驱动

主菜单-->Device Drivers-->Multimedia devices-->Video capture adapters-->OV9650 on the s3c2440 driver


3.8配置网卡驱动

主菜单-->Netwoking support-->Networking options -->选择Unix和TCP/IP


主菜单-->Device Drivers-->Network device support-->Ethernet (10 or 100Mbit)-->

选择 <*> Generic Media Independent Interface device support

        <*> DM9000 support


3.9 配置USB无线网卡驱动

主菜单-->Netwoking support-->wireless-->IEEE 802.11


主菜单-->Device Drivers-->Netwoking device support-->wireless LAN-->Wireless LAN(IEEE 802.11)-->Ralink driver support-->


3.10 配置音频驱动

主菜单-->Device Drivers-->Sound card supprt-->OSS Mixer API -->ALSA for Soc audio support-->SoC Audio for the samsung S3Cxxxx Chips


3.11 配置SD/MMC卡驱动

主菜单-->Device Drivers-->MMC/SD/SDIO card-->samsung S3C SD/MMC card


3.12 配置看门狗驱动支持

主菜单-->Device Drivers-->Watchdog Timer-->s3c2440 Watchdog


3.13 配置LED驱动

主菜单-->Device Drivers-->Character devices-->LED support for Mini2440


3.14 配置按键驱动

主菜单-->Device Drivers-->Character devices-->Buttons driver


3.15 配置PWM控制蜂鸣器驱动

主菜单-->Device Drivers-->Character devices-->buzzer driver for 


3.16 配置AD转换驱动

主菜单-->Device Drivers-->Character devices-->ADC driver for


3.17 配置串口驱动

主菜单-->Device Drivers-->Character devices-->Serial drivers-->samsung S3C2440/S3C2442 


3.18 如何配置RTC实时时钟驱动

主菜单-->Device Drivers-->Real Time Clock-->samsung S3C series SoC RTC


3.19 配置I2C-EEPROM驱动支持

主菜单-->Device Drivers-->I2C support -->I2C Hardware Bus support-->S3C2410 I2C Driver


3.20 配置yaff2s文件系统的支持

主菜单-->Device Drivers-->MTD-->NAND Device Support -->NAND FLASH Support

主菜单-->File systems-->Miscellaneous filesystems -->YAFFS2 file system support


3.21 配置EXT2/VFAT/ NFS等文件系统

主菜单-->File systems-->Network File Systems -->root file system on NFS


为了支持FAT32 文件系统.

主菜单-->File systems-->DOS/FAT/NT Filesystems -->VFAT (windows-95) fs support


关于mini2440 linux内核裁剪到此为止,退出后有一个是否保存提示,选择保存!


3.22 制作Linux logo


本来想使用Logomaker,结果生成的图片都是无数据的,这可能和系统内一些参数有关

使用命令方式制作logo:

在图片(open_show.png)目录下

#  pngtopnm open_show.png > temp.ppm

#  ppmquant 224 temp.ppm >temp2.ppm

#  pnmnoraw temp2.ppm > logo.ppm

将目录下生成的logo.ppm改成linux_logo_clut224.ppm,替代linux2.6.32.2/drivers/video/logo 目录下的同名文件


根目录(linux-2.6.32.2)下


# make zImage


内核完成!


(4)制作目标板(mini2440)文件系统+QT界面

root下

# cd /opt/FriendlyARM/mini2440

# mkyaffs2image-128M rootfs_qtopia_qt4 rootfs_qtopia_qt4.img


这样会在当前目录下生成 rootfs_qtopia_qt4.img 映像文件,你可以通过 USB 烧写到 128M Nand Flash 。

到此,裁剪的linux系统映像完成!

————————————————

版权声明:本文为CSDN博主「牧羊_人」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/muyang_ren/article/details/39438235

系统ubuntu12.04(非虚拟机下)

mini2440

CPU型号:       S3C2440AL-40

Nandflash型号:K9F1G08

Norflash型号:SST39VF1601

LCD:              统宝 240 x 320

$: 普通账户

#:root账户

*当shell下输入路径时可使用tab键自动补全


(一)建立交叉编译环境


1.将mini2440光盘中的linux文件夹拷贝到 /home/lianghuiyong 并改名为Linux_share

(其中两个文档为我后面添加进去的)


2.Ctrl+Alt+T打开shell

3.$ su - root (切换root权限)

4.# cd /home/lianghuiyong/Linux_share

5.解压安装arm-linux-gcc编辑器

# tar xvzf arm-linux-gcc-4.4.3.tar.gz  –C /        //注意:C后面有个空格

执行该命令,将把 arm-linux-gcc 安装到/usr/loca/arm/4.4.3 目录。这句来自mini2440用户手册,我发现其实是安装到 /opt/FriendlyARM/toolchain/4.4.3 目录


6.# vim /root/.bashrc

7.在最后一行添加:export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin    //opt/FriendlyARM/toolschain/4.4.3/bin 为arm-linux-gcc 环境变量

:wq保存退出。

# source ~/.bashrc

8.# sudo gedit /etc/environment

games后面添加标记部分


9.#  arm-linux-gcc -v         //gcc后面有空格


测试hello.c(这是在安装了第二部分的linux示例程序才有examples/hello目录)

# cd /opt/FriendlyARM/mini2440/examples/hello

# arm-linux-gcc -o hello hello.c

# ./hello


(二)安装源代码及其他

[1] [2]
关键字:mini2440  交叉编译环境  配置linux内核 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic497447.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:2.关于MINI2440下载的问题
下一篇:友善之臂mini2440开发板的一点感受

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

mini2440裸机试炼之——Uart与pc端实现文件、字符传输
:rULCON0|=0x03;              //设置UART0数据发送8个数据位赵老师的一段话(关于中断的,作为笔记):最后还要强调几点关于非FIFO模式下UART中断的一些注意事项:1.对于s3c2440来说,接收数据是被动的,发送数据是主动的,因此一般来说,接收数据用中断方式,发送数据用查询方式较好;2. 在中断方式下,当接收到数据时,尽管可能该数据无用,但也一定要读取它,否则下次再接收数据时,不会再引起中断,因为接收数据缓存器被上次接收到的数据所霸占,只要没有读取它,它就永远在那里;3. 由于UART中断涉及到SUBSRCPND寄存器,因此在
发表于 2020-07-04
<font color='red'>mini2440</font>裸机试炼之——Uart与pc端实现文件、字符传输
mini2440裸机试炼之IIS——音乐播放器
; Port_Init();    MMU_Init(); //地址映射初始化    Beep(2000, 100);       music_player();}music_player.c/*********************************** 实现功能     music播放器  ***********************************/ #include "2440lib.h"#include "2440
发表于 2020-07-04
<font color='red'>mini2440</font>裸机试炼之IIS——音乐播放器
mini2440裸机试炼之——IIC控制EEPROM数据传输
,AT24C02A会再返回一个从设备地址信息或从设备内存地址信息作为应答,所以一定要把该字节读取后抛弃,因为它不是我们所要读取的信息;4、按照AT24C02A的时序,在发送从设备地址字节时,它的最低位是0表示写,1表示读。但对于s3c2440来说,不用人为设置这一位,即是0是1都无所谓,因为这一位是由s3c2440根据是主设备发送模式还是主设备接收模式来自动设置。(所以都默认使用0xa0);EEPROM介绍AT24CXX系列是带有iic总线接口的EEPROM,其中主要包括AT24C01/02/08/16等,其容量(bits x页)分别为128 x 8/256x 8/1024 x 8/2048 x 8/;对于AT24C02A的三位地址线都是
发表于 2020-07-04
<font color='red'>mini2440</font>裸机试炼之——IIC控制EEPROM数据传输
mini2440裸机试炼之——看门狗中断和复位操作
结果:AXD调试执行到看门狗计数器rWTCNT为零时,进入复位,CPU停止工作,也就不产生中断。复位关闭axd后,u-boot串口初始化提示(没能及时在第一次蜂鸣器响按下按键停止autoboot):复位关闭axd后,u-boot串口初始化提示(及时在第一次蜂鸣器响按下按键停止autoboot):这里就是复位到用uboot初始化开发板的时候,可是不明确为什么必需要在第一次蜂鸣器就按下按键才干进到uboot附:硬件环境:J-link v8、mini2440、J-link转接板、串口转USB线软件环境:windows7(32位)、开发板uboot(NandFlash)、J-link驱动(J-Link ARM V4.10i)、SecureCRT
发表于 2020-07-04
<font color='red'>mini2440</font>裸机试炼之——看门狗中断和复位操作
arm-linux-gcc 裸机程序开发(一)
以前开发arm裸机程序都是在ADS1.2开发环境下编译和调试的。刚开始时初学嵌入式好多东西不懂,选择这个开发环境的理由,一是资料多的,mini2440开发板上提供了很多例程可以参考,网上几乎所有arm裸机程序都是基于ADS1.2开发的。二是开发环境友善,虽然后来感觉ADS1.2有点难用,但毕竟是IDE的环境,对初学者来说总比命令行的方式更加直观与方便。随着学习的深入,感觉它就像傻瓜相机一样,虽然好用但屏蔽了很多内容,影响了我们深入理解代码编译以及链接的细节。而且ADS对于程序的开发没有GNU工具链灵活。这段时间因为需要,又要编写一些arm裸机程序。自己已经用Linux习惯了,不想再切回windows下工作了。所以,最近对linux
发表于 2020-07-04
mini2440开发板建立Keil MDK/Jlink开发调试环境
新建Keil工程,device选择三星的s3c2440。询问”是否将启动代码拷贝到工程目录”,选择是。在工程配置的Target标签页中做如下配置:确定后编写主函数并编译工程。假如没有错误,打开工程目录下的”工程名.sct”文件,就会发现ROM1的0×30000000就是程序的入口地址,对应启动代码中的”RESET”。安装Jlink驱动后,在Keil的debug标签中选择”J-link/J-Trace”作为调试工具。在Initialization File文本框中选择调试的初始化文件。打开初始化文件,将文件最后的”LOAD .XXX.axf”,中的XXX替换为自己工程目录下的axf文件名。在Utilities标签页中,选择J
发表于 2020-07-02
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved