XC2440开发板编写BSP文件
来源:互联网 发布:土猫宠物淘宝怎么样 编辑:程序博客网 时间:2024/06/03 12:34
转自:http://blog.chinaunix.net/uid-22030783-id-3019567.html
获得内核源码:
Linux-2.6.37.4.tar.bz2(在光盘资料/源码包/kernel源码目录下)
也可到官方网站HHHHHHHHHHHHHHHHUUUUTUTUTUTUTUTUTUTUTUTUTUhttp://www.kernel.org/UUUUUUUUUUUUUUUTTTTTTTTTTTHHHHHHHHHHHHHHHH获得最新版本的内核源码
解压源码,进入目录:
#tar xjvf linux-2.6.37.4.tar.bz2
#cd linux-2.6.37.4
由于我们没有使用root用户登录ubuntu系统,刚解压出的文件夹和文件还没有可写权限,我们要给源码目录加上所有权限,以方便后面的修改操作:
#sudo chmod 777 linux-2.6.37.4 -R
参数-R表示递归地改变每个子目录下文件的权限
96B
修改 Makefile文件: 191行:
97BARCH?= arm ß指定系统硬件架构
98BCROSS_COMPILE ?= arm-linux- ß指定交叉编译器
99B创建XC2440的初始化文件:
100B仿照arch/arm/mach-s3c2440/mach-smdk2440.c,在arch/arm/mach-s3c2440目录下编写针对XC2440开发板的初始化文件,取名为:mach-xc2440.c(可以直接复制mach-smdk2440.c文件,只保留其中的头文件)
101B主要代码如下:
- static struct map_desc xc2440_iodesc[] __initdata = {
- /* No use*/
- };
- static struct s3c2410_uartcfg xc2440_uartcfgs[] __initdata = {
- [0]= {
- .hwport = 0,
- .flags = 0,
- .ucon = 0x3c5,
- .ulcon = 0x03,
- .ufcon = 0x51,
- },
- [1]= {
- .hwport = 1,
- .flags = 0,
- .ucon = 0x3c5,
- .ulcon = 0x03,
- .ufcon = 0x51,
- },
- [2]= {
- .hwport = 2,
- .flags = 0,
- .ucon = 0x3c5,
- .ulcon = 0x03,
- .ufcon = 0x51,
- }
- };
- static struct platform_device *xc2440_devices[] __initdata = {
- };
- static void __init xc2440_machine_init(void)
- {
- platform_add_devices(xc2440_devices, ARRAY_SIZE(xc2440_devices));
- }
- static void __init xc2440_map_io(void)
- {
- s3c24xx_init_io(xc2440_iodesc, ARRAY_SIZE(xc2440_iodesc));
- s3c24xx_init_clocks(12000000);
- s3c24xx_init_uarts(xc2440_uartcfgs, ARRAY_SIZE(xc2440_uartcfgs));
- }
- MACHINE_START(XC2440,"XC2440")
- .boot_params = S3C2410_SDRAM_PA+ 0x100,
- .init_irq = s3c24xx_init_irq,
- .map_io = xc2440_map_io,
- .init_machine = xc2440_machine_init,
- .timer =&s3c24xx_timer,
- MACHINE_END
147B
修改同目录(arch/arm/mach-s3c2440/)下的Kconfig和Makefile文件,加入对xc2440开发板的支持
148B在Kconfig文件的最后面加入:
- config MACH_XC2440
- bool "XC2440 development board with S3C2440 CPU module "
- select CPU_S3C2440
- select S3C_DEV_NAND
- help
- Say Y here if you are using the XC2440 development board.
- endmenu
149B
156B在Makefile文件中加入:
- obj-$(CONFIG_MACH_XC2440)+= mach-xc2440.o
158B修改机器码(这个要和bootloader的匹配):
159B找到s3c2440的机器码,在s3c2440 ARCH_S3C2440 S3C2440 362
161B最后面的数字362就是机器码,xc2440的uboot中的机器码也是362
162B但是这个机器码对应的machine是S3C2440,而我们的machine是XC2440
163B因为mach-xc2440.c中定义了MACHINE_START(XC2440, "XC2440")
164B把379行用#注释掉,在下面加一行:
- #s3c2440 ARCH_S3C2440 S3C2440 362
- xc2440 MACH_XC2440 XC2440 362
167B配置内核:
168B#make menuconfig ß进入图形化配置界面
ubuntu10.10中没有这个库,那我们就手动下载这个库:#sudo apt-get install libncurses5-dev
等待安装完这个库后,再执行
169B在配置菜单中选择这一项:“Load an Alternate Configuration File”
170B输入2440的默认配置文件:arch/arm/configs/s3c2410_defconfig
171B然后选择OK,按回车
172B进入“System Type”选项单,里面的选项保持默认
S3C2440”中的“XC2440”,完整配置如下:
176B让内核支持EABI编译器:
.config,无需手动保存
退出配置,弹出窗口,提示是否要保存配置,选择
185B把zImage镜像烧进NandFlash的kernel分区中跑一下,看终端是否正常打印出信息并正常引导操作系统
186B如果第一步能正常引导内核,那就开始进行第二步,添加驱动
- XC2440开发板编写BSP文件
- linux2.6.37.4内核在XC2440开发板上移植(十六)USB摄像头驱动移植
- linux2.6.37.4内核在XC2440开发板上移植(八)USB HOST驱动移植
- BSP自开发文件下载的一个demo
- BSP结构文件分析
- BSP结构文件分析
- mini6410的BSP文件
- 文件上传 [bsp 1.1 ]
- BSP开发(1)-Initramfs
- VxWorks的BSP开发
- VxWorks的BSP开发
- Linux BSP开发指导
- bsp开发概述
- bsp开发的思想
- bsp开发的流程
- SylixOS BSP 开发连载
- Linux BSP开发指导
- Yocto BSP 开发说明
- XMl解析的几种方式
- 自定义Toast
- Edittext中输入@符号关联联系人及快速索引
- 程序员到大数据人才 只需这几步
- 两个int类型的数组合并为新的数组
- XC2440开发板编写BSP文件
- ThreadLocal + Filter 处理事务
- 将一个给定的整型数组转置输出
- Velocity教程
- 51NOD 1127 最短的包含字符串(尺取法)
- java 删除文件夹下的所有文件
- Android5.0以上Button去除阴影
- 编写程序,键盘输入10个数,计算平均值,并打印这10个数、平均值(用数组)
- nginx+tomcat使用apache的FtpClient上传图片时由于多线程问题导致的文件大小为0的问题