新闻动态
资质荣誉
联系我们
U-Boot在基于BF561的嵌入式Linux系统上的移植
发布时间:2017-08-27 09:49:43 来源:大电流电感厂家 查看: 次
(3)加载内核并为内核设置启动参数。
(4)调用内核。
4 U-BOOT的移植
4.1 U-Boot方法与要点
移植U-Boot简便的方法是从U-Boot支持的开发板中选择一个与其目标板接近的开发板进行修改。需修改的是与硬件相关的部分,涉及到两个层面:针对CPU的移植,由于U-Boot_1.1.3支持BF561,故只需做第二层面的移植:针对目标板硬件的移植。在移植前,需仔细阅读U-Boot/readme文件,该文件对目录结构和如何移植作了简要介绍。从移植U-Boot的最小要求、U- Boot能够正常启动的角度出发,选择BF561的STAMP板为模板,相关源代码在/board/stamp目录下,结合U-Boot的启动流程,主要修改文件如下:
(1)与目标板相关的代码部分:在board下创建mybf561目录,无需插件电感从头开始,参考与目标板相似的STAMP板在mybf561目录下创建mybf561.c、mybf561.h、flash.c、config.mk、Makefie等文件。需要修改/board/mybf561/config.mk:
TEXT_BASE = 0x01FC0000
PLATFORM_CPPF大功率电感LAGS += - I$(TOPDIR)
TFEXT_BASE用于设置程序编译链接的起始地址即将U-Boot的stage2拷贝到SDRAM的TEXT_BASE处,即SDRAM最顶层一段存储区。修改board/mybf561/Makefile:
include $(TOPDIR)/config.mk
LIB= lib$(BOARD).a # 选择库文件
OBJS=$(BOARD).o mybf561.o # 目标文件
(2)与CPU相关的代码部分:U-Boot_1.1.3/epu文件中含有BF561的目录,其中包含start.s、cpu.c、cpu.h、interrupt.c、init_sdram.s等。故不需要建立与cpu相关的文件目录。
(3)与头文件相关的代码:在include/configs创建mybf561.h,参考include/configs/stamp.h,如下:
#define CONFIG_MYBF561 1
#define CONFIG_CLKIN_HZ 1000000 // 输入时钟
#define CONFIG_PLL_BYPASS 0 // 使用锁相环
与Flash 相关设置:
#define CFG_FLASH_BASE 0x20000000 // Flash起始地址
#define CFG_MAX_FLASH_BANKS 1 // max number of memory banks
#define CFG_MAX_FLASH_一体电感器 用途成型电感器SECT 67 // max number of sector on one chip
#define CFG_ENV_ADDR 0x20004000 // 环境变量保存地址
#define CFG_ENV_OFFSET (CFG_ENV_ADDR-CFG_FLASH_BASE)
#define CFG_ENV_SIZE 0x2000
#define CFG_ENV_SECT_SIZE 0x2000
Flash的修改与具体型号和容量有关,修改过程中参考Flash擦除数据命令、特定寄存器的写入地址以及扇区的大小和位置。
与SDRAM相关设置:
# define CONFIG_MEM_SIZE 32 // 128,64,32,16
# define CONFIG_MEM_ADD_WDTH // 8,9,10,11
# define CONFIG_MEM_MT48LC64M4A2FB_7E 1
# define CFG_MEMTEST_START 0x00000000
// memtest works on
# if (CONFIG_MEM_SIZE == 32)
# define CFG_MAX_RAM_SIZE 0x02000000
# define CFG_MEMTEST_END 0x01F7FFFF
// 1…31.5MB in DRAM
# define CFG_LOAD_ADDR 0x01000000
//default load
最后一行要用Tab键开头表示命令。其中blackfin表示CPU的种类。bf561是cpu bf561对应的代码目录,mybf561是目标板对应的目录。这样可使用make mybf561_config配置自身的开发板。
其他修改视情况而定。如根据SDRAM大小修改cplb表,根据需要修改堆栈大小。如drivers/cfi_flash.c中flash_init()函数,cpu/bf561/ints.c中init_IRQ()函数等。
修改完毕后就可以采用以下命令编译U-Boot:bash$>make clean,bash$>make mrproper,bash$>make mybf561_ config,bash$>make。
编译完后U-Boot_1.1.3生成U-Boot的二进制文件U-Boot.bin(U- Boot.bin只能用于更新)。执行bash$>bfin-uclinux-objcopy-I binary-Oihex U-Boot.bin,生成可在Windows下首次烧写到Flash的十六进制文件U-Boot.hex。
4.2 U-Boot的烧写
下载U-Boot到目标板,或者当U-Boot不能正常启动时,必须通过JTAG或者ADI ICE将U-Boot下载到目标板。在此可将ADI公司的仿真器与Visual DSP++环境相连,通过Visual DSP++,在TOOLS-->Flash Programmer下执行Flash驱动程序M25P64.dxe,选择"Erase all"-->Load Flie烧写U-Boot.hex文件到Flash中。
移植成功后,打开终端minicom复位开发板,若串口能输出正确的启动信息.则表明移植基本成功。启动后,如果在设定的时间内,串口没有接收到按键。U-Boot将自动加载操作系统内核和文件系统。若设定时间内串口接收到按键,则U-Boot停止自动加载,进入命令行,可看到U-Boot的提示符"mybf561>",查看Flash信息,调试或手动加载内核。
生成新的U-Boot.bin文件后。可通过Ethernet或者串口更新U-Boot。因为网络的传输速度远比串口快,故一般选择网络传输。将新生成的U-Boot.bin拷贝到宿主机根目录下的tftpboot目录(工字电感前提是已经创建tftp sever),在目标板出现U-Boot提示符后。按任意键进入下载模式:平面变压器厂家 | 平面电感厂家
采用MAX16834设计buck-boost LED驱动器本参考设计用于buck-boost LED驱动器。设计采用电流模式高亮度LED驱动器MAX16834,利用MAX16834评估(EV)板实现此设计方案。本应用笔记提供设计说明、原理图、材料清单(BOM
改变高复杂度、简化健康和安全的解决方案设计介绍本文重点介绍利用微软 .NET微架构来设计家用医疗器械,并介绍如何按照客户需求设计终端产品的观感。这可以通过设计吸引人的图形接口,集成各种通信接口(串口、I2C、SPI、以太网、USB、WiFi等
60秒揭秘电感开裂 一体成型电感开裂可分为内部开裂,做DPA(破坏性物理分析)的时候可以发现,还有就是外部开裂,可以通过自己的观察看到。
一体成型电感开裂如果是在内部,那么对终端产品的应用性能
上一条:高可靠电力保障领域的最后一道防线 下一条:LED节能灯自制指导