keil将程序装入外部FLASH详解

您所在的位置:网站首页 液晶驱动板程序保存在芯片里吗 keil将程序装入外部FLASH详解

keil将程序装入外部FLASH详解

2024-07-01 17:20| 来源: 网络整理| 查看: 265

在实际项目中,经常出现芯片的内部FLASH空间不够的情况,这就需要将程序分一部分装到外部FLASH中。

为了让大家能少走些弯路,在这里把我在这其中遇到的一些问题和经验教训给大家分享一下。

仅供参考,如果有错误的地方欢迎指正,提前表示感谢!

硬件环境介绍 芯片是LPC1788,外部FLASH是SST39VF1601(NORFLASH)。 这个norflash在我的版本的keil(v4.0)中没有烧写算法,需要自己手动编写烧写算法,具体步骤我会在以后写出来。 添加烧写算法 打开工程的Options菜单,在里面选择Utilities选项卡,configure里选择第一项,这一项的意思是“为FLASH项目使用目标驱动”,下面一项的意思是“为FLASH项目使用外部工具”,一般情况下我们是用jlink调试,keil里有内置的驱动,所以选这一项。 然后点击settings。如下图: 然后就会出现关于烧写算法的菜单: 在这个菜单下点击add,可添加FLASH的烧写算法; 选择烧写算法 可以在如下图所示窗口中选择需要的烧写算法:

如果其中有你想要的算法,直接选择,然后点击add,即可算法添加进去;如果没有,则必须自己手动编写烧写算法。

编写算法的步骤我会在以后介绍,在此不做过多说明。你的算法编写成功后,也会在这个菜单里显示出来,直接选择即可。

修改起始地址和大小 添加成功后,在下图所示的页面修改其起始地址和大小。 起始地址根据硬件连线情况和芯片的配置确定,大小根据外部FLASH的实际大小确定。 配置完成后,点击确定即可。 编写jlink配置文件 将烧写算法配置完成后,需要编写jlink的配置文件,这是为了在下载程序时给jlink使用的。主要是初始化引脚和配置读取时延的操作。我项目的配置文件如下,给大家提供下参考: FUNC void PinSel(int p1, int n1, int f1) { _WDWORD(0x4002C000 + (p1 * 32 + n1) * 4, 0x8 | f1); } FUNC void InitNORFlash(void) { int i; PinSel(2,16,1); PinSel(2,17,1); PinSel(2,18,1); PinSel(2,20,1); PinSel(2,24,1); PinSel(2,28,1); PinSel(2,29,1); PinSel(2,30,1); PinSel(2,31,1); for(i = 0; i < 32; i++) PinSel(3,i,1); for(i = 0; i < 21; i++) PinSel(4,i,1); PinSel(4,24,1); PinSel(4,25,1); PinSel(4,30,1); PinSel(4,31,1); /* PCONP |= 1


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3