
罗纳尔多


0 访问量
0 原创专栏
0 资料
0 粉丝
个性签名:此E友还没有留下个性签名哦~
加入易百纳时间:2012-12-04
-
在RealviewMDK中,Flash烧写算法不是通用的,都是针对具体的Flash存储芯片的。由于市面上的Flash种类比较多,所以Realview MDK不可能包含所有的Flash芯片烧写程序。但是在具体的应用中,开发者在Realview MDK中可能会找不到自己所需要的Flash烧写程序,这时,用户就必须自己添加Flash烧写程序。本文将详细的探讨这种方法。 Realview MDK已经定义好了添加到其中的Flash烧写算法的接口,包括1个描述Flash芯片的结构体和6个对Flash芯片操作的函数定义。详细的内容可以参考下面的代码。 structFlashDevice { unsigned short Vers; //体系结构及版本号; char DevName[128]; //设备的名称及描述; unsigned short DevType; //设备的类型,例如: ONCHIP, EXT8BIT,EXT16BIT等等; unsigned long DevAdr; //默认设备的起始地址; unsigned long szDev; //设备的总容量; unsigned long szPage; //页面的大小; unsigned long Res; //保留,以便将来扩展之用; unsigned char valEmpty; // Flash擦除后储存单元的值; unsigned long toProg; //页写函数超时的时间; unsigned long toErase; //扇区擦除函数超时的时间; struct FlashSectors sectors[SECTOR_NUM]; //扇区的起始地址及容量设置数组。 }; extern int Init (unsigned long adr, unsigned long clk, unsignedlongfnc); extern int UnInit (unsigned long fnc); extern int BlankCheck (unsigned long adr, unsigned long sz, unsignedcharpat); extern int EraseChip (void); extern int EraseSector (unsigned long adr); extern int ProgramPage (unsigned long adr, unsigned long sz, unsigned char *buf); externunsigned long Verify (unsigned long adr, unsignedlongsz, unsigned char *buf); 在RealviewMDK中,添加Flash烧写算法的实质就是填充上面的那个结构体以及实现那6个函数。至于几个函数是如何被RealviewMDK调用的,用户不必关心,这些是由Realview MDK自动管理的,只要正确的实现了上面的那些内容,开发者就可以将Realview MDK编译链接后的程序下载到自己的Flash芯片中去。下面是添加一个Flash烧写的详细步骤: 1. 在C:\Keil\ARM\Flash下新建一个空的子文件夹; 2. 在 Flash 文件夹中选择一个已存在的,且和欲添加的 Flash 算法相近的内容(如 ..\ARM\Flash\LPC_IAP_256) 拷贝到这个新文件中,并将此算法作为新算法的模板; 3. 重命名工程文件LPC_IAP_256.UV2以表示新的FlashROM设备名,如29F400.UV2并用μVisionIDE 将其打开; 4. 在对话框Project-OptionsforTarget-Output中将所有的输出文件名(如 LPC_IAP_256)替换为新的 设备名; 5. 编辑FlashPrg.C文件并为EraseChip,EraseBlock及ProgramBlock定义函数代码。在函数Init和UnInit 中编写算法所需的初始化以及卸载代码; 6. 在文件FlashDev.C中的structFlashDevice结构体中定义设备参数; 7. 重新编译工程,将在C:\Keil\ARM\Flash文件夹下生成*.FLX 格式的Flash编程算法。此文件即为 所添加的Flash编程算法; 8. 使用ConfigureFlashDownload 中的Add按钮可将此编程算法文件添加到目标应用工程中。2012-12-040 0 2524
-
在RealviewMDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。虽然这两个格式的文件非常有利于ULINK2仿真器的下载和调试,但是ADS的用户更习惯于使用*.bin格式的文件,甚至有些嵌入式软件开发者已经拥有了*.bin格式文件的调试或烧写工具。为了充分地利用现有的工具,同时发挥RealviewMDK集成开发环境的优势,将*.axf格式文件或*.hex格式文件转换成*.bin格式的文件是十分自然的想法。本文将详细的探讨这种转换方法。 在详细的介绍这种方法之前,先了解一下ARM公司的RVCT开发套件中的fromelf.exe转换工具是十分必要的,因为在RealviewMDK中生成*.bin格式文件的工具正是它。 fromelf.exe转换工具的语法格式如下: fromelf[options]inputt_file 其中[options]包括的选项及详细描述见表一。 表一 fromelf工具的选项及描述表格 选项 描述 选项 描述 --heelp 显示帮助信息 ---vsn 显示版本信息 --output file 输出文件(默认的输出为文本格式) ---nodebug 在生成的映象中不包含调试信息--noliinkviiew 在生成的映象中不包含段的信息 ---bin 生成PlainBinary格式的文件--m32 生成Motorola32位十六进制格式的 ---i32 生成Intel32位十六进制格式的 文件 文件 --vhx 面向字节的位十六进制格式的文件 ---baseaddrr 设置m32,i32格式文件的基地址--ttext 显示文本信息 -v 打印详细信息 -a 打印数据地址(针对带调试信息的映 -d 打印数据段的内容 象) -e 打印表达式表printexceptiontables -ff 打印消除虚函数的信 -g 打印调试表printdebugtables -rr 打印重定位信息 -t 打印字符串表 -y 打印动态段的内容 -z 打印代码和数据大小的信息 在掌握了fromelf转换工具的语法格式以后,下面将介绍它在RealviewMDK中的使用方法:1. 新建一个工程,例如Axf_To_Bin.uv2; 2. 打开OptionsforTarget‘Axf_To_Bin’对话框,选择User标签页; 3. 构选RunUserProgramsAfterBuild/Rebuild框中的Run#1多选框,在后边的文本框中输入 C:\Keil\ARM\BIN31\fromelf.exe--bin-o./output/Axf_To_Bin.bin./output/Axf_To_Bin.axf命令行; 4. 重新编译文件,在./output/文件夹下生成了Axf_To_Bin.bin文件。 经过上述4步的操作以后,将得到我们希望的Axf_To_Bin.bin格式的文件。2012-12-040 0 2464
-
相 同 点 : 基 本 不 需 要 人 的 干 预 , 大 部 分 工 作 是 以 自 组 完 成 的 , 二 者 统 称 为 自 组 织 网 络 。 二 者 的 研 求 低 功 耗 的 自 组 织 网 络 设 计 。 • 不 同 点 : ( 1) 网 络 拓 扑 结 构 和 工 作 模 式 各 不 相 同 。 A d hoc网 络 : 网 络 拓 扑 结 构 动 态 变 化 。 W SN : 网 络 拓 扑 结 构 是 静 态 的 。 ( 2) 工 作 模 式 不 同 。 W SN : 多 对 一 (M any-to-O ne)通 信 , 节 点 不 会 发 生 消 息 交 换 。 A d H oc网 络 : 网 络 中 任 意 两 节 点 之 间 都 可 能 优化网络,优化带宽。2012-12-040 0 4388
-
驱动部分 driver目录下编译时,需要指定kernel的路径,修改driver目录下的makefile的 KDIR=指定的kernel路径/ hi3515v100-sdio:sd卡驱动 mouse:鼠标驱动 net:网卡驱动 sata:硬盘驱动 serial:232/485串口驱动 usbserial:3G驱动 usbstorage:u盘驱动 (1) kenerl编译方法: make uImage 生成路径: /arch/arm/boot/uImage (2)uboot make distclean make hiconfig ===> ./hiconfig 此时选择2 make 生成目标文件 u-boot.bin2012-12-040 0 4019

共4条