256 Ch
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,638
On Slideshare
1,638
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. #!/bin/sh MADPLAY_DIR=/opt/FriendlyARM/QQ2440/madplay SRC_DIR=src-arm TARGET_DIR=$MADPLAY_DIR/target-arm tar xvzf ./tarball/libid3tag-0.15.1b.tar.gz -C $SRC_DIR tar xvzf ./tarball/libmad-0.15.1b.tar.gz -C $SRC_DIR tar xvzf ./tarball/madplay-0.15.2b.tar.gz -C $SRC_DIR tar xvzf ./tarball/zlib-1.2.3.tar.gz -C $SRC_DIR export CC=arm-linux-gcc cd $SRC_DIR/zlib-1.2.3 ./configure --prefix=$TARGET_DIR make && make install cd ../.. cd $SRC_DIR/libid3tag-0.15.1b ./configure --host=arm-linux --prefix=$TARGET_DIR CPPFLAGS=-I$TARGET_DIR/include LDFLAGS=-L$TARGET_DIR/lib make;make install cd ../../ cd $SRC_DIR/libmad-0.15.1b ./configure --host=arm-linux --prefix=$TARGET_DIR make;make install cd ../.. cd $SRC_DIR/madplay-0.15.2b ./configure --host=arm-linux --prefix=$TARGET_DIR CPPFLAGS=-I$TARGET_DIR/include LDFLAGS=-L$TARGET_DIR/lib make;make install cd ../../ (8)下载 madplay 到开发板运行测试 为了区别于板子中已经存在的 madplay,我们把新做的改名为 mymadplay,把它以及依 第 - 256 - 页
  • 2. 赖库通过 ftp 下载到开发板,并作如下放置: 执行文件: mymadplay 放在 /usr/bin/目录 库文件: libid3tag.a libid3tag.la libid3tag.so libid3tag.so.0 libid3tag.so.0.3.0 libmad.a libmad.la libmad.so libmad.so.0 libmad.so.0.2.1 libz.a 放在/usr/lib 目录。 执行结果如图所示: 第 - 257 - 页
  • 3. 第七章 常见 bootloader 的配置和编译 在 S3C2440/2410 系统中,常见的 bootloader 一般有 Vivi – 由三星提供,韩国 mizi 公司原创,开放源代码,必须使用 arm-linux-gcc 进 行编译,目前已经基本停止发展,主要适用于三星 S3C24xx 系列 ARM 芯片,用以 启动 Linux 系统,支持串口下载和网络文件系统启动等常用简易功能。 Supervivi – 由友善之臂提供并积极维护,它基于 vivi 发展而来,不提供源代码,在 保留原始 vivi 功能的基础上, 整合了诸多其他实用功能, 如支持 CRAMFS, YAFFS 文件系统,USB 下载,自动识别并启动 Linux,WinCE, uCos,Vxwork 等多种嵌入 式操作系统,下载程序到内存中执行,并独创了系统备份和恢复功能,非常适合在 批量生产中使用,是目前 2440/2410 系统中功能最强大最好用的 bootloader。 YL-BIOS – 深圳优龙基于三星的监控程序 24xxmon 改进而来,提供源代码,可以 使用 ADS 进行编译,整合了 USB 下载功能,仅支持 CRAMFS 文件系统,并增加 了手工设置启动 Linux 和 WinCE,下载到内存执行测试程序等多种实用功能。因其 开源性,故该 bootloader 被诸多其他嵌入式开发板厂商所采用,需要注意的是大部 分是未经优龙公司授权的。 U-Boot – 一个开源的专门针对嵌入式 Linux 系统设计的最流行 bootloader,必须使 用 arm-linux-gcc 进行编译,具有强大的网络功能(失去网络,U-Boot 基本丧失其最 独到的优势,在 2440/2410 系统中网络是添加网络芯片外扩的,毫无疑问会增加成 本,而 USB 是内置的,只需几个电阻配置),支持网络下载内核并通过网络启动系 统,U-Boot 处于更加活跃的更新发展之中,但对于 2440/2410 系统来说,它尚未支 持 Nand Flash 启动,国内已经有人为此自行加入了这些功能,本章节中的 U-Boot 即是如此。 Bootloader 以其本身的含义来讲就是下载和启动系统,它类似于 PC 中的 BIOS,大部分 芯片厂商所提供的嵌入式系统都提供有这样的程序,而且都比较成熟,大可不必自行编写。 我们所改进的 supervivi 目标是使之更加人性化,更加适合于批量生产需要。 以下各个版本的 BIOS 均包含原始代码,和我们稍微改造后以适应于 mini2440 的全部 原代码,在测试对比过程中我们发现,使用以下几个 BIOS 的过程无异于经历一场噩梦,你 并不能十分顺利的使用通过标准方式编译出来的内核和文件系统,你需要一系列的配置、转 换,还要搭建一个局域网,这其中会遇到很多挫折、郁闷和彷徨。 使用 supervivi 则会让你更加注重于实际的开发工作,你可以轻松把自己所作下载到开 发板并运行起来,只要会操作鼠标就可以,就像一次愉快的旅行,根本不需要专业知识,也 不需要输入复杂的命令,毕竟这是一个飞速发展的时代,我们谁都不想浪费时间在不必要的 事情上! 下面我们使用图解的方式介绍一下那些开源 BIOS 的配置和编译过程,其使用方法暂时 不做介绍。 第 - 258 - 页
  • 4. 7.1 配置和编译 vivi 注意:编译 vivi 需要设置交叉编译环境为 2.95.3 版本的编译器,请参考“建立 linux 开 发环境”一节。 7.1.1 使用缺省配置编译 vivi 的源代码包 vivi.tgz 位于光盘的/OpenSourceBootloader 目录,把 vivi.tgz 复制到某一 个目录,进入该目录,运行以下命令: #tar xvzf vivi.tgz –C /opt/FriendlyARM/mini2440 执行该命令将把 vivi 源代码解压到/opt/FriendlyARM/mini2440 目录,进入 vivi 源代码目 录,执行: #cd /opt/FriendlyARM/mini2440/vivi #make clean #make menuconfig 出现以下界面: 第 - 259 - 页
  • 5. 一般不需要更改任何配置,按左右方向键,选择 <Exit>,如图: 第 - 260 - 页
  • 6. 选择<Yes>,按回车退出,然后执行“make”开始编译,执行结果如下: #make 第 - 261 - 页
  • 7. 此时已经在当前目录下生成了 vivi,您可以参考上面的章节把 vivi 烧写到目标板的 Nand Flash 运行。 7.1.2 配置 vivi 从 Nor Flash 启动 有的用户抱怨说编译出的 vivi 不能正常运行使用,大部分情况是因为对系统的不了解所 导致, 上一小节编译出的 vivi 只能烧写到 Nand Flash 运行使用。 要使你的 vivi 能够从 Nor Flash 启动运行,需要重新配置一下,它不像 supervivi 那样可以自动识别 Nor Flash/Nand Flash。 进入 vivi 目录,执行“make menuconfig”开始配置: 选择 System Type Implementations Support AMD Boot,同时取消选择 Support NandBoot,如图: 第 - 262 - 页
  • 8. 保存退出,执行: #make clean #make 这样生成的 vivi 就可以使用 H-JTAG 烧写(参见 2.6 一节)到 Nor Flash 启动了。 7.2 使用 ADS 编译 YL-BIOS 注意:要编译使用优龙的 BIOS,首先要安装好 ADS 开发环境。 说明:对于 YL-BIOS 我们没有做太多测试和说明,毕竟这是第三方 BIOS,也非主流, 在此仅作参考,本公司不提供关于该 BIOS 的任何技术支持和咨询。 7.2.1 使用 ADS 编译 YL-BIOS (1)YL-BIOS2440 源代码位于光盘的/OpenSourceBootloader 文件夹中,把它复制到您的 电脑中,如“D:work” ,去掉其只读属性。 (2)使用 ADS 打开 YL2440A_MON.mcp 文件: 第 - 263 - 页
  • 9. (3)不要修改任何设置,直接点击 Project Make 或者按 F7 键开始编译,最后在 “D:workYL-BIOS2440YL2440A_MON_DataDebugRel”目录下生成 yl-bios2440.bin 文件: 第 - 264 - 页
  • 10. 7.2.2 把 YL-BIOS 下载到内存中运行 把 mini2440 拨动开关 S2 设置为 Nor Flash 启动,并打开超级终端,进入功能菜单模 式,并输入功能命令“d” ,如图: 打开运行 DNW,设置下载地址为 0x30100000 (这是 YL-BIOS 的默认运行地址): 第 - 265 - 页
  • 11. 点 Usb Port Transmit/Restore,并选择刚才所编译出的 yl-bios2440.bin 开始通过 USB 下载到内存中: 下载很快结束,这时串口终端出现如图所示: 第 - 266 - 页
  • 12. 按一下空格键就可以进入 YL-BIOS 的菜单了,如图: 第 - 267 - 页
  • 13. 7.2.3 烧写 YL-BIOS 到开发板 YL-BIOS 还可以直接烧写到 Nand Flash 中运行使用。 (1)和上面的步骤类似,首先确定设置 mini2440 为 Nor Flash 启动模式,打开超级终端 进入 supervivi 的 BIOS 模式,并输入功能命令“a” : (2)打开 DNW,确认 USB 连接正常 OK,点 UsbPort Transmit/Restore,选择刚才所 编译的 yl-bios2440.bin,下载和烧写很快就会结束。 (3)把 mini2440 启动模式跳线改为 Nand Flash 启动,重新复位或者重启开机电源开关, 在串口终端可以看到如图信息: 第 - 268 - 页
  • 14. 按任意键进入 YL-BIOS 的菜单模式,如图: 第 - 269 - 页
  • 15. 注意事项: 至此你已经可以编译、烧写并启动了 YL-BIOS,在此之后你在 Nand Flash 中将使用 一个全新的第三方 BIOS,你不能再继续使用 supervivi 烧写内核和文件系统,并用 YL-BIOS 启动它们,因为其采用的一些参数和友善之臂并不相同;你必须按照 YL-BIOS 的功能手册来 操作剩余的部分,关于如何进一步使用 YL-BIOS 请用户自行查找资料解决。 当然你也可以使用 SJF2440 工具软件来烧写 YL-BIOS,那将会十分慢,但不能使用 H-JTAG,因为它尚不支持 Nand Flash 烧写。 7.3 配置和编译 U-Boot 说明:本小节只介绍 U-Boot 的配置编译和烧写,关于其使用方法的详细介绍,我们 将会在以后的手册更新中添加,用户也可以自行到网上查找相关资料。 本光盘中的 U-Boot 具有以下功能特性: 1. 同时支持 S3C2410 和 S3C2440 2. 支持串口 xmodem 协议 3. 支持 USB 下载,可以在 PC 上使用 dnw 传数据 4. 支持网卡芯片 CS8900 5. 支持 NAND Flash 读写 6. 支持从 Nor/Nand Flash 启动 7. 支持烧写 yaffs 文件系统映象 8. 可以直接下载到内存运行 9. 即可以支持 CS8900,又可以支持 DM9000,但是,不能同时支持;要选择支持哪 个网卡芯片,需要在 include/configs/100ask24x0.h 中进行配置,如下: #if 0 #define CONFIG_DRIVER_CS8900 1 /* we have a CS8900 on-board */ #define CS8900_BASE 0x19000300 #define CS8900_BUS16 1 /* the Linux driver does accesses as shorts */ #endif #if !defined(CONFIG_DRIVER_CS8900) #define CONFIG_DRIVER_DM9000 1 #define CONFIG_DM9000_USE_16BIT 1 #define CONFIG_DM9000_BASE 0x20000000 #define DM9000_IO 0x20000000 #define DM9000_DATA 0x20000004 #endif 下面是具体的编译方法和烧写步骤。 第 - 270 - 页