首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

1788怎么烧片外norflash

2013-07-11 
1788如何烧片外norflash各位大侠,求教一个初学者的问题,不过这个问题着实困扰了我好久了!就是如何将程序烧

1788如何烧片外norflash
各位大侠,求教一个初学者的问题,不过这个问题着实困扰了我好久了!就是如何将程序烧到NXP LPC1788 片外的nor flash 中?

最近编一个基于ucgui的显控程序,由于要用到汉字库和图片,所以片内512KB flash显然不够了。准备用挂在bank1上的nor flash——AM29LV160DB

对于nor flash的擦除、编程的函数都已写好,想利用keil中添加flash烧写算法,并修改分散加载文件的方式直接将全部程序片内片外一起烧写。但是苦于没有基于17xx 片外nor flash的烧写算法模板,烧写进行到擦除片外norflash的那步时就显示“flash timeout 。reset the target”的字样,进行不下去了。估计是烧写算法中,init函数对系统初始化不够。请高手告诉我,keil接口的flash烧写算法中init函数中要进行哪些初始化?(烧写器用的是ulink2)

后又尝试用H-JTAG烧写,不过也得要init文件,面临同样问题!!



请高手告诉我如何解决以上问题,或是如何用其他方式烧写1788片外norflash? 1788?
[解决办法]
烧录片外FLASH,一个就是按你的方法,用KEIL中烧写FLASH的模板写烧写外面FLASH的几个函数,片内FLASH和片外FLASH的模板都是一样的,拷贝一份,把FlashPrg.c和FlashDev.c中的内容替换掉,也就是填充FlashDevice结构体,然后再定义那几个函数就可以了。改一下输出文件的名字,生成一个新的FLASH烧写算法。不过,这个不能用散列文件的方式写吧,应该把字库等做成单独文件或做成数组放到单独的keil工程中,在散列文件中将编译执行地址放到片外FLASH地址处,然后设置新写的FALSH烧写算法,应该就OK了。如果还有问题,应该是FLASH的操作函数不对或哪里设置不对。

再有一种办法就是分成多个程序,支持自加载,一部分是loader程序,负责从串口或USB口等加载其他程序,一部分是应用程序,另外一部分是字库等存在外FLASH的程序。这样所有程序就都是你自己的了,可以撇开仿真器加载程序。利于程序更新升级。

热点排行