tag 标签: u-boot

相关博文
  • 热度 18
    2015-12-25 15:17
    1203 次阅读|
    0 个评论
       自从大二我就开始接触单片机,开始学习51单片机编程及电路图绘制,经过一段时间的学习,发现嵌入式很有意思。后来在师兄的推荐下,我到图书馆借了韦东山老师写的《嵌入式Linux应用开发完全手册》,开始学习嵌入式linux,在虚拟机安装Linux,熟悉Linux环境,各种命令。根据书本的指引,我很快入门了,主要是书写得很好。结合书本视频,也就是韦东山嵌入式Linux第一期视频,我被嵌入式深深吸引住了。最后决定继续购买韦老师的后期视频,快速提高技术水平。        下面我来记录一下我的学习过程及心得。        首先了解需要用到的工具及源码,如下: 交叉编译工具:arm-linux-gcc-4.4.3.tar.gz linux内核:linux-2.6.22.6.tar.bz2,补丁:linux-2.6.22.6_jz2440.patch u-boot源码:u-boot-1.1.6.tar.bz2,补丁:u-boot-1.1.6_jz2440.patch busybox源码:busybox-1.7.0.tar.bz2 yaffs2制作工具:yaffs_source_util_larger_small_page_nand.tar.bz2 jffs2制作工具路径:F:\韦东山\CD1_主光盘\GUI\xwindow\X\deps   以上源码和工具均来自韦东山光盘。 一、u-boot移植        首先通过观看u-boot相关的视频,了解大概情况后开始移植。 工具和源码在路径:F:\韦东山\CD1_主光盘\system。   tar xjf u-boot-1.1.6.tar.bz2   //解压缩 cd u-boot-1.1.6  //进入目录 patch -p1 ../u-boot-1.1.6_jz2440.patch //打补丁,-p1是指忽略第一个目录 root@ubuntu:/share/u-boot-1.1.6# make 100ask24x0_config  //产生配置文件 Configuring for 100ask24x0 board... make all  //编译 结果会遇到这个问题,发现浮点错误,因为gcc造成,所以修改以下文件 gedit cpu/arm920t/config.mk undefined reference to ‘raise’  //提示错误                                                将cpu /arm920t/config.mk 改为 PLATFORM_RELFLAGS += -fno-strict-aliasing  -fno-common -ffixed-r8 /     -msoft-float PLATFORM_CPPFLAGS +=  # ===========================================================# # Supply options according to compiler version PLATFORM_CPPFLAGS +=$(call cc-option,) PLATFORM_RELFLAGS +=$(call cc-option,$(call cc-option,)) 在uboot的根目录中把Makefile中的PLATFORM_LIBS 修该为如下值  PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc -lc -L/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib 然后重新 make distclean,make 100ask24x0_config,  make   应就能通过了,最后可生产u-boot.bin 通过jlink下载u-boot.bin到nor flash 下载成功后,从nor flash启动,选择k命令, 开启dnw,选择dnw的USB Port下载uImage, 在u-boot界面输入b即可启动内核。 启动u-boot后,要保证能ping通虚拟机linux。
  • 热度 22
    2015-12-25 15:16
    1188 次阅读|
    0 个评论
       自从大二我就开始接触单片机,开始学习51单片机编程及电路图绘制,经过一段时间的学习,发现嵌入式很有意思。后来在师兄的推荐下,我到图书馆借了韦东山老师写的《嵌入式Linux应用开发完全手册》,开始学习嵌入式linux,在虚拟机安装Linux,熟悉Linux环境,各种命令。根据书本的指引,我很快入门了,主要是书写得很好。结合书本视频,也就是韦东山嵌入式Linux第一期视频,我被嵌入式深深吸引住了。最后决定继续购买韦老师的后期视频,快速提高技术水平。        下面我来记录一下我的学习过程及心得。        首先了解需要用到的工具及源码,如下: 交叉编译工具:arm-linux-gcc-4.4.3.tar.gz linux内核:linux-2.6.22.6.tar.bz2,补丁:linux-2.6.22.6_jz2440.patch u-boot源码:u-boot-1.1.6.tar.bz2,补丁:u-boot-1.1.6_jz2440.patch busybox源码:busybox-1.7.0.tar.bz2 yaffs2制作工具:yaffs_source_util_larger_small_page_nand.tar.bz2 jffs2制作工具路径:F:\韦东山\CD1_主光盘\GUI\xwindow\X\deps   以上源码和工具均来自韦东山光盘。 一、u-boot移植        首先通过观看u-boot相关的视频,了解大概情况后开始移植。 工具和源码在路径:F:\韦东山\CD1_主光盘\system。   tar xjf u-boot-1.1.6.tar.bz2   //解压缩 cd u-boot-1.1.6  //进入目录 patch -p1 ../u-boot-1.1.6_jz2440.patch //打补丁,-p1是指忽略第一个目录 root@ubuntu:/share/u-boot-1.1.6# make 100ask24x0_config  //产生配置文件 Configuring for 100ask24x0 board... make all  //编译 结果会遇到这个问题,发现浮点错误,因为gcc造成,所以修改以下文件 gedit cpu/arm920t/config.mk undefined reference to ‘raise’  //提示错误                                                将cpu /arm920t/config.mk 改为 PLATFORM_RELFLAGS += -fno-strict-aliasing  -fno-common -ffixed-r8 /     -msoft-float PLATFORM_CPPFLAGS +=  # ===========================================================# # Supply options according to compiler version PLATFORM_CPPFLAGS +=$(call cc-option,) PLATFORM_RELFLAGS +=$(call cc-option,$(call cc-option,)) 在uboot的根目录中把Makefile中的PLATFORM_LIBS 修该为如下值  PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc -lc -L/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib 然后重新 make distclean,make 100ask24x0_config,  make   应就能通过了,最后可生产u-boot.bin 通过jlink下载u-boot.bin到nor flash 下载成功后,从nor flash启动,选择k命令, 开启dnw,选择dnw的USB Port下载uImage, 在u-boot界面输入b即可启动内核。 启动u-boot后,要保证能ping通虚拟机linux。
  • 热度 31
    2015-7-28 10:15
    1041 次阅读|
    0 个评论
      经过前面的移植,u-boot已经有能力启动内核了,本文主要来看下如何通过之前移植的u-boot来启动内核。如果按照前面的文章完成了LTIB的编译,那么,Linux的内核应该就会出现rpm/BUILD/目录下,接下来,我们就开始移植这个3.0.35版本的内核到TQIMX6Q。   内核的编译   为了简化内核编译的过程,可以在内核目录下创建编译脚本,命名为build.sh,内容如下:   #!/bin/sh   export ARCH=arm   export CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-   make uImage -j8   为该脚本添加可执行权限:   chmod a+x build.sh   由于本文使用的内核镜像格式是uImage,因此会依赖u-boot编译时生成的工具——mkimage。该工具为u-boot目录的tools子目录下,可以将mkimage拷贝到/usr/bin或者/usr/local/bin目录下,当然也可以是用环境变量PATH,方法如下:   export PATH=$PATH:~/Projects/imx6/L3.0.35_4.1.0/ltib/rpm/BUILD/u-boot-2009.8/tools   安装路径需要根据自己的实际情况填写。完成以上操作之后就可以编译内核了,执行脚本程序:   ./build.sh   内核的编译时间较长,需耐心等待,也与机器的配置有关。   内核启动尝试   内核编译完成后,uImage会出现在arch/arm/boot/目录下,将该镜像烧写到SD卡:   sudo dd if=arch/arm/boot/uImage of=/dev/sdb bs=512 seek=2048   sync   然后用SD卡启动开发板,按任意键打断u-boot启动,进入命令行,修改u-boot环境变量:   setenv bootargs_base 'setenv bootargs console=ttymxc0,115200'   setenv bootargs_mmc 'setenv bootargs ${bootargs} root=/dev/mmcblk1p1 rootwait rw'   setenv bootcmd_mmc 'run bootargs_base bootargs_mmc; mmc dev 1; mmc read ${loadaddr} 0x800 0x2000; bootm'   setenv bootcmd 'run bootcmd_mmc'   saveenv   以上指令的含义:   第一条:bootargs_base,维持默认状态,作用是在bootargs中指定串口终端及波特率。   第二条:bootargs_mmc,是MMC方式启动内核使用的bootargs特有参数。   第三条:bootcmd_mmc,是MMC方式启动特有的命令组合。   第四条:bootcmd是内核启动命令。   第五条:保存env到SD存储介质。   完成之后执行命令:   boot   或者重新上电开发板就可以启动内核了。   内核的修改   通过上面的设置,u-boot已经可以引导内核启动了,但是,内核启动后仅打印了一部分log,猜测是内核中UART的GPIO管脚配置不正确,开始一段log能打印出来是因为u-boot阶段配置好了UART,而内核中又将这两个引脚配置为其它用途了。首先来解决串口log问题,打开文件arch/arm/mach-mx6/board-mx6q_sabresd.h并作如下修改:   ... ...   // MX6Q_PAD_CSI0_DAT10__UART1_TXD,   MX6Q_PAD_SD3_DAT7__UART1_TXD,   // MX6Q_PAD_CSI0_DAT11__UART1_RXD,   MX6Q_PAD_SD3_DAT6__UART1_RXD,   ... ...   其实,u-boot已经作过相应的修改,修改UART1相关的配置信息,除了以上修改之外,还需要将SD3与串口冲突的两个引脚:   MX6Q_PAD_SD3_CLK__USDHC3_CLK_50MHZ,   MX6Q_PAD_SD3_CMD__USDHC3_CMD_50MHZ,   MX6Q_PAD_SD3_DAT0__USDHC3_DAT0_50MHZ,   MX6Q_PAD_SD3_DAT1__USDHC3_DAT1_50MHZ,   MX6Q_PAD_SD3_DAT2__USDHC3_DAT2_50MHZ,   MX6Q_PAD_SD3_DAT3__USDHC3_DAT3_50MHZ,   // MX6Q_PAD_SD3_DAT4__USDHC3_DAT4_50MHZ,   // MX6Q_PAD_SD3_DAT5__USDHC3_DAT5_50MHZ,   // MX6Q_PAD_SD3_DAT6__USDHC3_DAT6_50MHZ,   // MX6Q_PAD_SD3_DAT7__USDHC3_DAT7_50MHZ,   MX6Q_PAD_NANDF_D0__GPIO_2_0,   MX6Q_PAD_NANDF_D1__GPIO_2_1,   注释掉以上四行。保存后重新编译内核并烧写到SD卡,重新启动开发板会发现内核已经可以正常打印启动Log了。接下来将LTIB编译生成的rootfs烧写到开发板,并使用编译好的内核挂载该文件系统。   挂载文件系统   文件系统的构建方式都差不多,这里就不再自己构建了,直接使用LTIB编译时生成的文件系统。   将SD卡插ubunut上,对该SD卡进行分区:   sudo fdisk /dev/sdb   然后如下操作:   Step1: 通过指令u切换到sectors模式。输入u后回车,fdisk会在sectors模式和cylinders模式间切换,这里切换到sectors模式。   Step2:通过d指令删除原来的分区。重复的输入d并回车,可以删除SD卡原有的分区,知道没有任何分区为止。   Step3:通过n指令新建分区。输入n并回车。   Step4:输入分区编号。这里输入数字1。   Step5:输入分区的起始位置。该位置是sectors为单位的,每个sector的大小为512B,这里偏移8M,给内核留下足够的存储空间,输入16384并回车。   Step6:输入分区的结束为止。直接使用默认值,即到达SD卡的末尾,故直接回车即可。   Step7:保存分区信息。输入指令w并回车。   这样就完成了SD卡的分区,接下来需要将该分区格式化为ext3或者ext4,指令如下:   sudo mkfs.ext3 /dev/sdb1   或者   sudo mkfs.ext4 /dev/sdb1   最后,将文件系统拷贝到该分区,进入ltib目录下的rootfs文件夹,然后执行如下指令:   sudo mount /dev/sdb1 /mnt   sudo cp -a * /mnt   也可以重新拔插SD卡,将rootfs内的文件拷贝到ubunut挂载的分区。   如果rootfs是压缩包,则可以解压到SD卡分区,比如bzip的压缩包,可以如下处理:   sudo tar jxf rootfs.tar.bz2 -C /mnt   sudo mv /mnt/rootfs   MX6Q_PAD_SD2_CLK__USDHC2_CLK,   MX6Q_PAD_SD2_CMD__USDHC2_CMD,   MX6Q_PAD_SD2_DAT0__USDHC2_DAT0,   MX6Q_PAD_SD2_DAT1__USDHC2_DAT1,   MX6Q_PAD_SD2_DAT2__USDHC2_DAT2,   MX6Q_PAD_SD2_DAT3__USDHC2_DAT3,   // MX6Q_PAD_NANDF_D4__USDHC2_DAT4,   // MX6Q_PAD_NANDF_D5__USDHC2_DAT5,   // MX6Q_PAD_NANDF_D6__USDHC2_DAT6,   // MX6Q_PAD_NANDF_D7__USDHC2_DAT7,   // MX6Q_PAD_NANDF_D2__GPIO_2_2,   MX6Q_PAD_GPIO_2__USDHC2_WP,   // MX6Q_PAD_NANDF_D3__GPIO_2_3,   MX6Q_PAD_GPIO_4__USDHC2_CD,   Step2:打开arch/arm/mach-mx6/board-mx6q_sabresd.c,作如下修改:   #define SABRESD_SD2_CD IMX_GPIO_NR(1, 4)   #define SABRESD_SD2_WP IMX_GPIO_NR(1, 2)   即将SD2_CD的引脚号修改为GPIO1_4和GPIO1_2。   按照以上步骤修改内核后重新编译并烧写到SD卡,然后使用SD卡启动开发板。   相关产品:   http://www.embedsky.com/index.php?s=/Product/show/id/83.html   http://www.embedsky.com/index.php?s=/Product/show/id/57.html
  • 热度 25
    2014-10-13 17:02
    2402 次阅读|
    0 个评论
    调试Linux Kernel的时候,如果是每次都使用SD卡拷贝新uImage,很明显不如直接使用串口或网口传输来的方便。使用串口kermit传输的速度有点慢,所以我使用了minicom+tftp的方式。 第一步:安装tftp yum install tftp 第二步:修改/etc/xinetd.d service tftp {         socket_type             = dgram         protocol                = udp         wait                    = yes         user                    = root         server                  = /usr/sbin/in.tftpd         server_args             = -s /tftp_root -c         per_source              = 11         cps                     = 100 2         flags                   = IPv4         disable                 = no } -s制定chroot目录,-c意思是可以创建文件。这个目录一定要直接在根目录下。 第三步:启动tftp服务 service xinetd start 如果要永久启动的话,就执行: systemctl start xinetd.service 第四步:修改防火墙设置 在runtime和perminent里面加入69号端口,同时开启tftp和tftp-cllient服务。 第五步:修改selinx setsebool -P tftp_anon_write on setsebool -P tftp_home_dir on 到这里,tftp就设置好了。 第六步:在U-Boot的命令提示符下输入: U-Boot# set ipaddr 192.168.1.133                                                 U-Boot# set serverip 192.168.1.132 第七步:执行tftp命令 U-Boot# tftp 0x82000000 uImage U-Boot# tftp 0x83000000 maria_am335x.dtb 最后,启动内核既可: U-Boot# bootm 0x82000000 - 0x83000000 速度比串口快得不是一点点哦~~~
  • 热度 33
    2014-9-3 10:08
    3870 次阅读|
    7 个评论
    U-Boot for AM335x (13) steps of building Linux Kernel 这一节我记录了porting Linux Kernel的具体步骤,和以往相差比较大的是driver的DT策略,内核不再将描述driver的代码放置在uImage中了,而是放在*.dtb文件里面,由u-boot.img传递给内核。 具体的步骤见下(绝对路径、名字神马的,替换成自己的就行): ==== STEP 1: 安装交叉工具链,它和编译U-Boot的是同一个,Forlinx光盘里面有提供: arm-arago-linux-gnueabi 也可以在TI的官方网站下载,还可以使用GCC的mainline编译(使用GCC源码编译自己的工具链,也是非常interesting的事情,ps:开源软件说的interesting,就是非常有挑战性的意思,就是可能会让你想咔咔咔砸掉电脑的意思。。。) http://software-dl.ti.com/sitara_linux/esd/AM335xSDK/latest/index_FDS.html 这是TI的官方开发软件的地址,下载这个东东,它里面神马都有: ti-sdk-am335x-evm-07.00.00.00-Linux-x86-Install.bin (另外,这里也提供了单独下载的链接,比如制作SD卡的工具啦,am335x的源玛啦,交叉编译器啦。。。) 因为TI官网的版本比Forllinx提供的要高一点,所以我使用了TI提供的,顺便把U-Boot也重新编译了一次。重新运行MLO和u-boot.img,没有遇到问题,意外的非常顺利!另外,使用旧版本的编译最新版本的内核,我出现了下面的错误: /tmp/cc3G2Hh3.s: Assembler messages: /tmp/cc3G2Hh3.s:2006: Error: garbage following instruction -- `dmb ishst' /tmp/cc3G2Hh3.s:2023: Error: garbage following instruction -- `dmb ishst' /tmp/cc3G2Hh3.s:2055: Error: garbage following instruction -- `dmb ish' /tmp/cc3G2Hh3.s:2067: Error: garbage following instruction -- `dsb ishst' 总之,以后的步骤还是会使用TI官网提供的4.7.3版本。 ==== STEP 2: 从Linux Kernel的官方网站下载最新版本的stable内核,下载完成之后解压,并进入目录,清理它: tar xvf linux-3.16.1.tar.xz cd linux-3.16.1 make ARCH=arm CROSS_COMPILE=/opt/arm-arago-linux-gcc-ti/i686-arago-linux/usr/bin/arm-linux-gnueabihf- -j8 mrproper 要是交叉工具链的bin目录加入了PATH环境变量,那么CROSS_COMPILE就可以不用写完整的绝对路径。 -j8的意思是,指定同时执行的任务有8个,一般来说,电脑的CPU有几核,就指定它的两倍既可,使用lscpu命令可以查看。 ==== STEP 3: 构造自己的config文件: 这是很关键的一步。 make ARCH=arm CROSS_COMPILE=/opt/arm-arago-linux-gcc-ti/i686-arago-linux/usr/bin/arm-linux-gnueabihf- -j8 omap2plus_defconfig make ARCH=arm CROSS_COMPILE=/opt/arm-arago-linux-gcc-ti/i686-arago-linux/usr/bin/arm-linux-gnueabihf- menuconfig 先调入默认的config文件omap2plus_defconfig,这样很多配置就可以使用它的,而不用一个个研究了。然后使用menuconfig的方法生成.config,要修改的主要有这么几个地方: ************************* 选项1:General setup  --- Default hostname 填入自己希望的hostname,我填写的是Maria,这个随意,也可以不填。 ************************* 选项2:General setup  --- Stack Protector buffer overflow detection (None)  --- 选择none,而不是默认的strong,否则编译无法通过,错误信息如下: cc1: error: unrecognized command line option "-fstack-protector-strong" (这条是因为不调入omap2plus_defconfig时,默认x86体系,而arm交叉编译器maybe不支持这个选项,调入了omap2plus_defconfig时默认是none。) ************************* 选项3:Boot options  --- Default kernel command string 将root=/dev/mmcblk0p2 rootwait console=ttyO2,115200 修改为:root=/dev/mmcblk0p2 rootwait console=ttyO0,115200 ==== STEP 4: 编译*.dtb文件 make ARCH=arm CROSS_COMPILE=/opt/arm-arago-linux-gcc-ti/i686-arago-linux/usr/bin/arm-linux-gnueabihf- -j8 am335x-evm.dtb 这一步将在arch/arm/boot/dts/目录下生成am335x-evm.dtb文件。 ==== STEP 5: 编译uImage make ARCH=arm CROSS_COMPILE=/opt/arm-arago-linux-gcc-ti/i686-arago-linux/usr/bin/arm-linux-gnueabihf- -j8 LOADADDR=0x80008000 uImage 这一步将在这一步将在arch/arm/boot/下生成uImage文件,花的时间可能会比较长,大概十几分钟。 ==== STEP 6: 运行 将MLO、u-boot.img、uImage、am335x-evm.dtb拷贝到SD的boot分区(假设SD卡已经使用TI公司提供的分区工具create-sdcard.sh分成了boot区和rootfs区),使用kermit连上开发板的com0,设置串口参数,等待串口出现U-Boot提示符: U-Boot# fatls mmc 0 U-Boot# fatload mmc 0 0x82000000 uImage U-Boot# fatload mmc 0 0x83000000 am335-evm.dtb U-Boot# bootm 0x82000000 - 0x83000000 此时,就可以看到欢快的内核打印信息了~~~ 哦耶~~~ ## Booting kernel from Legacy Image at 82000000 ...    Image Name:   Linux-3.16.1    Image Type:   ARM Linux Kernel Image (uncompressed)    Data Size:    4172416 Bytes = 4 MiB    Load Address: 80008000    Entry Point:  80008000    Verifying Checksum ... OK ## Flattened Device Tree blob at 83000000    Booting using the fdt blob at 0x83000000    Loading Kernel Image ... OK    Using Device Tree in place at 83000000, end 8300b6e7 Starting kernel ... Booting Linux on physical CPU 0x0 Linux version 3.16.1 (maria@localhost.localdomain) (gcc version 4.7.3 20130226 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03) ) #15 SMP Tue Sep 2 14:33:33 CST 2014 出现了内核打印信息,说明Linux Kernel就开始跑起来了,当然剩下的工作仍然很多,比如制作文件系统、解决各种各样打印问题、解决各种各样的驱动问题……但有了打印信息,就不会是无头无脑找问题的阶段了(当然,JTAG也是个好工具),接下来的任务,就是修改mainline中关于am335x-evm.dtb的内容,直到Forlinx开发板的硬件运行正确,再制作成自己的forlinx.dtb。 万里长征,go on walking......   (补充:Forlinx的OK335D开发板,使用arch/arm/boot/dtc/am335x-bone.dts,而不是am335x-evm.dts,能够顺利出现串口的命令提示符,就是说Kernel和file system都加载正确了!到目前为止,mainline的porting工作告一段落,之后的内容属于针对项目的研发,因此这个U-Boot for AM335x系列也结束了,wish me luck!^_^)
相关资源
  • 所需E币: 5
    时间: 2019-12-25 17:31
    大小: 198.17KB
    上传者: 16245458_qq.com
    NIOS软核处理器的Linux引导程序U-boot设计……
  • 所需E币: 5
    时间: 2019-12-25 17:17
    大小: 106.17KB
    上传者: 二不过三
    U—Boot在S3C2410上的移植……
  • 所需E币: 3
    时间: 2019-12-25 16:48
    大小: 251.58KB
    上传者: 238112554_qq
    U-BOOT与MontaVistaLinuxForPower的移植,也可以作为其他芯片的参考,很有价值!浅析U-BOOT与MontaVistaLinux的移植-基于MPC8270开发板1OUTLINEU-BOOT的移植过程MontaVistaLinux的移植过程FileSystem的生成过程2MPC8270的嵌入式软件结构APModuleLinuxFileSystem软件U-BOOT结构硬件MPC8270Target结构3简介一个嵌入式Linux系统从软件的角度看通常可以分为四个层次:z引导加载程序。包括固化在固件(Firmware)中的boot代码(可选),和BootLoader两大部分。zLinux内核。特指嵌入式板子的定制内核以及内核的启动参数。z文件系统。包括根文件系统和建立于Flash内存设备之上文件系统。通常用Ramdisk来作为RootFS。z用户应用程序。……
  • 所需E币: 4
    时间: 2019-12-25 16:44
    大小: 13.68KB
    上传者: givh79_163.com
    步进电机Linux驱动……
  • 所需E币: 5
    时间: 2019-12-25 16:40
    大小: 127.4KB
    上传者: 二不过三
    Linux2.6内核移植(forAT91rm9200)文档……
  • 所需E币: 5
    时间: 2019-12-25 16:36
    大小: 1.09MB
    上传者: 978461154_qq
    linux系统移植开发文档Linux系统移植目录第一部分前言....................................................................................................................................81硬件环境......................................................................................................................................81.1主机硬件环境.......................................................................................................................81.2目标板硬件环境...................................................................................................................81.3工具介绍...............................................................................................……
  • 所需E币: 4
    时间: 2019-12-25 15:56
    大小: 272.52KB
    上传者: 二不过三
    BootloaderU-Boot功能齐全、应用广泛但移植到ARM微处理器S3C2440A上相对比较复杂.简介了常见的Bootloader,归纳了U-Boot的主要特征,分析了其运行过程,介绍了系统存储空间分布和基于S3C2440A微处理器为核心自主开发的嵌...第30卷第4期电子器件v01.30No.4J“。”1饼Electron2007年8月chi“8seDev2。e3Aug.2007PortingMethodof―U―BootinS3C2440Board……
  • 所需E币: 3
    时间: 2019-12-25 12:36
    大小: 256.94KB
    上传者: rdg1993
    U-boot作为一款通用的bootloader,在嵌入式系统领域是非常成功的.但是在AT91RM9200的重映射机制的使用上,存在不合理性,给移植带来了很多不便.本文详细介绍AT91RM9200的重映射机制以及启动流程,提出一种检测易失性存储介质的算法;采用情景分析的方法给出U-boot三种模式启动无关性的修正方案,对U-boot移植和bootloader的设计有一定的参考价值.……
  • 所需E币: 4
    时间: 2019-12-25 12:17
    大小: 159.96KB
    上传者: 2iot
    U-boot的启动流程分析维普资讯http://www.cqvip.comSOIENOE&TECHNOLOOYfNFORMATIONT技术U-boot的启动流程分析……
  • 所需E币: 4
    时间: 2019-12-25 11:45
    大小: 57.75KB
    上传者: 微风DS
    NIOS软核处理器的Linux引导程序U-boot设计……
  • 所需E币: 5
    时间: 2019-12-25 10:21
    大小: 159.96KB
    上传者: 二不过三
    启动流程分析维普资讯http://www.cqvip.comSOIENOE&TECHNOLOOYfNFORMATIONT技术U-boot的启动流程分析……
  • 所需E币: 4
    时间: 2020-1-16 14:35
    大小: 304.39KB
    上传者: wsu_w_hotmail.com
    S3C44B0_U-Boot的启动流程及移植……