揭秘ARM片外FIash存储器IAP解决方案

发布时间:2011-12-27 阅读量:1004 来源: 我爱方案网 作者:

中心议题:
    *  介绍一种基于代码重入思想的片外存储器IAP解决方案
    *  简介LPC2210及SST39VFl60芯片的特点
    *  分析IAP实现要点
解决方案:
    *  凡涉及偏移值的指令通通采用基址变址寻址方式
    *  以PC寄存器作基址寄存器
    *  以立即数为变址

引 言
  
以ARM芯片为处理器核的嵌入式应用系统,以其小体积、低功耗、低成本、高性能、丰富的片内资源以及对操作系统的广泛支持,得到了人们越来越多的青睐。在应用编程IAP(InApplicatAiON Program)就是这样的自修改程序。它先在RAM存储器中写入数据值,然后使PC指向该存储段,把该段作为程序段来执行。很多ARM7芯片自带IAP处理器,应用其自带的IAP处理器可以方便地对其片内集成的Flash存储器进行在应用编程,但几乎所有的ARM核芯片均不支持片外IAP处理,因为片外Flash存储器是用户选型的,芯片生产厂家无法先知先觉,而不同Flash存储器其编程时序也不尽相同,导致芯片生产厂家无法提供通用的IAP代码。那么,如何对嵌入式系统的片外Flash存储器进行在应用编程呢?这里分两种情况:一是普通代码存放在片外单独1片Flash中,IAP代码在另一片Flash中完成,此时只要依据Flash的操作时序执行IAP代码,完成擦除或写入操作即可。这种情况虽然简单,但应用了2片Flash;而IAP代码很小,一般完全可以集成到1片中,所以这里对这种情况不予考虑。另一种情况是1片Flash中既要存储普通代码,又要实现IAP。
  
针对嵌入式应用系统片外Flash存储器IAP无现成方案的问题,介绍一种基于代码重入思想的片外存储器IAP解决方案。结合LPC2210及SST39VFl60芯片,简介两款芯片特点,给出应用连接框图;分析IAP实现要点,并给出IAP的实现代码。下面以Phnips公司的LPC2210 和 Silicon storage Technology 公司的SST39VFl60为例,详细讨论这种情况IAP的解决方案。
  
1 硬件结构
  
1.1 LPC2210介绍
  
Philips公司的LPC22lO是一款基于支持实时仿真和嵌入式跟踪的16/32位ARM7TDMI-SCPU的微控制器。芯片采用144脚封装,有16 KB片内静态RAM,开放外部总线;通过外部存储器接口可将外部存储器配置成4组,每组的容量高达16 Mb,数据宽度8/16/32位均可;具有多个32位定时器、8路lO位PWM输出、多个串行接口(包括2个16C550工业标准UART、高速I2C接口和2个sPI接口)以及9个外部中断、多达76个可承受5 V电压的通用I/O口,同时内嵌实时时钟和看门狗,片内外设功能丰富强大;片内晶振频率范围l~30 MHz,通过片内PLL可实现最大为60 MHz的CPU工作频率,具有2种低功耗模式——空闲和掉电,通过外部中断将处理器从掉电模式中唤醒,并可通过个别使能/禁止外部功能来优化功耗。以上特性,使其特别适用于工业控制、医疗系统、访问控制和POS机,同时也非常适合于通信网关协议转换器,嵌入式软Modem,以及其他各种类型的应用。
  
1.2 SST39VFl60介绍
  
SILICON StoraLge Technology公司的SST39VFl60是一个lM×16b的CMOS多功能Flash器件,单电压的读和写操作,电压范围3.O~3.6 V,提供48脚TSOP和48脚TFBGA两种封装形式。
  
该器件主要操作包括读、字编程、扇区/块擦除和芯片擦除操作。擦除和字编程必须遵循一定的时序,表l列出了扇区擦除和字编程过程及时序。擦除或编程操作过程中读取触发位DQ6将得到“1”和“O”的循环跳变;而操作结束后读DQ6,得到的是不变的固定值。这是器件提供的写操作状态检测软件方法。
  
1.3 硬件连接
  
SST39VF160作为系统的程序存储器,以LPC2210的CSO作为Flash的片选信号,处理器配置Boot引脚为16位数据总线宽度后,上电可直接执行SST39VFl60中代码。此Flash芯片为16位数据宽度,无字节控制总线,所以应用中不使用LPC2210的BLS引脚。系统结构示意图如图1所示。
 

 




2 软件实现
  
2.1 IAP实现要点分析
  
在嵌入式应用系统中,通常要求记录一些现场的传感、交互输入数据,通常把数据记录在Flash存储器中,以便下次上电能获取以前的数据。如果系统程序和数据分开存储,那么只要对存放数据的Flash器件进行编程即可。然而大多数嵌入式系统,程序和需保存的数据都共存于同一Flash存储器中,那么是否也如前所述,可对Flash存储器直接编程呢?理论和实践都表明不可以。先从理论上计算:LPC22lO允许的芯片核工作频率(CCLK)范围是10~60 MHz,存储器读访问长度由存储器组配置寄存器BCFG中读访问的长度域控制WSTl控制,其最大可用长度为35个CCLK,而SST39VFl60的扇区擦除典型时间为18 ms。下面是计算算式:  
TRDmax=RDLenmax/CCLKmin=35/10×10一6=3.5 μs.TD=18 ms》3.5μs其中:TRDmax—最大读访问时间;RDLenmix——最大读访问可用长度;CCLKmin——最小核工作时钟频率;Tp——扇区擦除典型时间。
  
算式得出扇区擦除典型时间远大于最大读访问时间。这样一来,如果再给某Flash写数据,同时于其中预取指,那么因F1ash在执行命令期间,对其他操作不响应,预取出的必定是其数据引脚上的不确定数据,预取指失败。实践也表明,如果在程序执行过程中,对同一Flash进行扇区擦除,必定引起预取指中断。
  
为了解决在同一Flash芯片存放程序并IAP这一问题,引进代码重映射的思想。所谓重映射就是代码先自复制到指定存储区,然后跳转到指定区的起点开始执行。这里,lAP程序先自复制到LPC2210片内SRAM中,然后跳转到SRAM执行lAP代码。前面说过,ARM7为冯·诺依曼结构,这就为IAP程序重映射提供了可能。
  
编写可重映射代码的关键是要解决程序中相对偏移的问题,ARM7指令系列中涉及相对偏移的指令主要有LDR/STR以及跳转指令。这里的解决方案是:凡涉及偏移值的指令通通采用基址变址寻址方式,以PC寄存器作基址寄存器,以立即数为变址,这样当程序块整块移动时,要加载的数据或跳转的地址与当前Pc值的偏移值固定,解决了相对偏移问题。
  
2.2 扇区擦除
  
事先编程在Flash中的程序先自复制到SRAM指定的位置,然后,赋PC为SRAM中扇区编程代码段的起点ERASEPART。程序于SRAM中的ERASEPART起点开始执行,按照SST39VF160扇区擦除的时序要求开始擦除。按照ARM公司提出的ATPCS规定,C语言程序调用汇编程序时,寄存器R0一R3传递参数,返回值由寄存器RO传递原则,扇区擦除程序的一个参数,要擦除的扇区号,由RO传递;返回参数置于R0,扇区擦除成功返回“1”,否则返回“0”。
  
2.3 字编程
  
程序于SRAM中的PROGRAMPART起点开始执行,按照SST39VFl60字编程的时序要求开始编程。入口参数有三个,依次为编程地址、数据起始地址、编程数据长度。字编程成功返回“1”,否则返回“0”。
  
3 结论
  
文中提出的IAP代码重入到SR—kM执行的方法,有效地解决了应用无片内程序存储器的32位ARM处理器的嵌入式系统IAP难题,有很大的应用价值。

相关资讯
华虹半导体2025年Q1业绩解析:逆势增长背后的挑战与破局之路

2025年第一季度,华虹半导体(港股代码:01347)实现销售收入5.409亿美元,同比增长17.6%,环比微增0.3%,符合市场预期。这一增长得益于消费电子、工业控制及汽车电子领域需求的复苏,以及公司产能利用率的持续满载(102.7%)。然而,盈利能力显著下滑,母公司拥有人应占溢利仅为380万美元,同比锐减88.05%,环比虽扭亏为盈,但仍处于低位。毛利率为9.2%,同比提升2.8个百分点,但环比下降2.2个百分点,反映出成本压力与市场竞争的加剧。

边缘计算新引擎:瑞芯微RV1126B四大核心技术深度解析

2025年5月8日,瑞芯微电子正式宣布新一代AI视觉芯片RV1126B通过量产测试并开启批量供货。作为瑞芯微在边缘计算领域的重要布局,RV1126B凭借3T算力、定制化AI-ISP架构及硬件级安全体系,重新定义了AI视觉芯片的性能边界,推动智能终端从“感知”向“认知”跃迁。

半导体IP巨头Arm:季度营收破12亿,AI生态布局能否撑起估值泡沫?

2025财年第四季度,Arm营收同比增长34%至12.4亿美元,首次突破单季10亿美元大关,超出分析师预期。调整后净利润达5.84亿美元,同比增长55%,主要得益于Armv9架构芯片在智能手机和数据中心的渗透率提升,以及计算子系统(CSS)的强劲需求。全年营收首次突破40亿美元,其中专利费收入21.68亿美元,授权收入18.39亿美元,均刷新历史纪录。

Arrow Lake的突破:混合架构与先进封装的协同进化

2024年10月,英特尔正式发布Arrow Lake架构的酷睿Ultra 200系列处理器,标志着其在桌面计算领域迈入模块化设计的新阶段。作为首款全面采用Chiplet(芯粒)技术的桌面处理器,Arrow Lake不仅通过多工艺融合实现了性能与能效的优化,更以创新的混合核心布局和缓存架构重新定义了处理器的设计范式。本文将深入解析Arrow Lake的技术突破、性能表现及其对行业的影响。

暗光性能提升29%:深度解析思特威新一代AI眼镜视觉方案

2025年5月8日,思特威(股票代码:688213)正式发布专为AI眼镜设计的1200万像素CMOS图像传感器SC1200IOT。该产品基于SmartClarity®-3技术平台,集成SFCPixel®专利技术,以小型化封装、低功耗设计及卓越暗光性能,推动AI眼镜在轻量化与影像能力上的双重突破。公司发言人表示:"AI眼镜的快速迭代正倒逼传感器技术升级,需在尺寸、功耗与画质间实现平衡,这正是SC1200IOT的核心价值所在。"