新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ADSP-BF533的μClinux嵌入式系统移植与开发

基于ADSP-BF533的μClinux嵌入式系统移植与开发

作者:时间:2011-09-06来源:网络收藏
3 利用U—Boot引导内核

本文引用地址:http://www.amcfsurvey.com/article/150264.htm

  U—Boot(Universal Boot Loader)是当前比较流行的遵循GPL条件的开放源码项目。也是是Linux常用的Boot Loader之一。其完成的功能是初始化硬件设备、改变处理器运行模式、重组中断向量和建立内存空间映射图,从而将的软硬件带到一个合适的状态或者用户定制的特定状态,以便为最终加载操作内核准备好正确的环境。

  U—Boot具有源码公开的特点,人员可根据自身需要进行裁减;支持多种处理器和操作系统内核;具有多种设备驱动源码:支持种引导方式;具有功能强大且成熟、稳定等诸多优点,故本文采用U—Boot引导μ内核。U—Boot严重依赖于底层硬件,不同的CPU或板极设备需要不同的U—Boot,不过因为本文的重点是μ,所以这里不再详述U—Boot的具体实现过程。

  当系统上电后,U—Boot从地址OxO开始执行,将存储器映射重新配置,如图1所示,并会执行μ的固化内核。

  

  U一Boot可以使用ADI的仿真软件Visual DSP++通过仿真器或JTAG口下载到目标板上。

  4 μClinux内核的编译和

  作为操作系统的核心,μClinux内核负责管理系统的进程、内存、设备驱动程序、文件系统和网络系统,决定着系统的各种性能。μClinux内核采用模块化的组织结构,通过增减内核模块的方式来增减系统的功能。

  4.1 内核配置

  虽然μClinux的内核代码大部分独立于处理器和其体系结构,但是最底层的代码还是特定系统的。虽然各个系统存在相同之处,但是它们的中断处理上下文、内存映射的维护、任务上下文和初始化过程是独特的。这些例行程序放置在μClinux代码树的aroh/目录下。这里需要根据自己的硬件平台来配置内核代码。配置过程如下:

  可以从官方网站http://blackfin.μClinux.org处下载μClinux—list的内核源代码。运行解压命令:将tar— xvfμClinux—dist.tar.gz解压完毕后,就会生成/μClinux—dist目录,加入该目录后按如下顺序编译内核:

  (1)make menuconfig;进入菜单方式配置指令;

  (2)选择所使用的平台类型和所使用的库

  本文设计的目标板选择:AnalogDevices/BF533一EZ—KIT和μC—libc库。在配置栏中,选择Load an AlternateConfiguration File,按确认,退出配置栏;

  (3)make dep;寻找依存关系;

  (4)make clean;清除以前构造内核时生成的所有目标文件、模块文件和一些临时文件;

  (5)make lib_only;编译库文件;

  (6)make user_only;编译用户应用程序文件;

  (7)make tomfs;生成romfs文件系统;

  (8)make image;生成镜像文件然后通过Jtag口输入到目标板;

  (9)make;通过各个目录的makefile文件进行,会在各目录下生成一大堆目标文件。

  在上述步骤完成后,就完成了对μClinux源码的编译工作。最后会在/μClinux—dist/images目录下看到3个内核文件:linux.dxe,linux.bin和zlmage.bin。如果编译不成功,需要根据编译过程的提示信息找到错误并重新编译,直到成功为止。

  4.2 修改配置内核代码

  直接由源代码编译生成的内核映像文件一般不会启动成功,需要根据自己的目标板进行配置。需要修改系统启动初始化文件crt0_ram.s,sysinit.c和ram.1d。

  在crt0_ram.s中需要根据自己的目标板修改基地址、存储器大小和起始地址。在sysinit.c中需要修改片选设置,分别对FLASH和 SDRAM进行片选设置。在ram.1d中修改内核连接加载地址。做完上面的修改,重新编译生成linux.dxe等文件。

  4.3 μClinux内核的下载与执行

  μClinux内核有2种可选的运行方式:一种是在FLASH上直接运行;另一种是加载到内存中运行,系统启动时从FLASH中读取压缩的内核代码(存储器空间有限,所以一般需要压缩内核代码)到内存中解压,然后开始执行,这种方法比第一种的速度更快(RAM的存取速度比FLASH的快)。所以选取第二种方法。

  编译好的内核文件可以由Visual DSP++装置,通过网口或串口把linux.dxe下载到目标板的FLASH中,从设定的入口地址(一般为Oxl000)执行即可启动内核。

  启动μClinux就可以在超级终端看到μClinux的欢迎信息和简单的shell提示符,界面如图3所示。

  

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭