NXP 系列:LPC1114 系列 (低功耗)_(6).存储器架构.docxVIP

NXP 系列:LPC1114 系列 (低功耗)_(6).存储器架构.docx

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

PAGE1

PAGE1

存储器架构

在嵌入式系统设计中,存储器架构是一个至关重要的部分。LPC1114系列单片机采用了高效的存储器架构,旨在优化性能和功耗。本节将详细介绍LPC1114的存储器架构,包括其各类存储器的类型、大小、访问速度以及如何高效地使用这些存储器资源。

1.内部存储器

LPC1114系列单片机配备了多种内部存储器,包括闪存(FlashMemory)、静态随机存取存储器(SRAM)和寄存器(Registers)。

1.1闪存(FlashMemory)

闪存是LPC1114系列单片机的主要程序存储区域。LPC1114提供了32KB的闪存,用于存储用户程序和常量数据。闪存的特点是是非易失性的,即断电后数据不会丢失。

1.1.1闪存结构

闪存被分为多个块,每个块可以独立擦除。LPC1114的32KB闪存通常被分为128个256字节的块。这种结构使得程序更新和数据擦除更加灵活高效。

1.1.2闪存访问

闪存的访问速度相对较慢,但LPC1114通过使用内部缓存(Cache)来加速代码执行。缓存会预取和存储常用代码片段,从而减少闪存访问的频率,提高整体运行效率。

1.1.3闪存编程

闪存编程通常通过片上编程器(ISP)和在线编程(IAP)两种方式进行。ISP是通过UART接口进行编程,而IAP则是在运行过程中通过软件调用编程函数来更新闪存内容。

示例代码:在线编程(IAP)

#includeLPC11xx.h

//IAP命令代码

#defineIAP_CMD_PREPARE50

#defineIAP_CMD_ERASE51

#defineIAP_CMD_PROGRAM52

#defineIAP_CMD_READPART53

#defineIAP_CMD_READUID54

#defineIAP_CMD_COMPCODE55

//IAP函数指针

typedefvoid(*IAP)(uint32_tcommand,uint32_tparam1,uint32_tparam2,uint32_tparam3,uint32_tparam4,uint32_t*result);

//获取IAP函数指针

staticIAPiap_entry=(IAP)0x1FFF1FF1;

voidprepare_flash(uint32_tstart_address,uint32_tend_address){

uint32_tresult[5];

iap_entry(IAP_CMD_PREPARE,start_address,end_address,0,0,result);

if(result[0]!=0){

//准备失败

while(1);

}

}

voiderase_flash(uint32_tstart_address,uint32_tend_address){

uint32_tresult[5];

iap_entry(IAP_CMD_ERASE,start_address,end_address,0,0,result);

if(result[0]!=0){

//擦除失败

while(1);

}

}

voidprogram_flash(uint32_taddress,uint32_tdata){

uint32_tresult[5];

iap_entry(IAP_CMD_PROGRAM,address,data,0,0,result);

if(result[0]!=0){

//编程失败

while(1);

}

}

intmain(){

//准备闪存块

prepare_flash(00x000000FF);

//擦除闪存块

erase_flash(00x000000FF);

//编程闪存

program_flash(00;

//程序运行

while(1){

//主循环

}

}

1.2静态随

文档评论(0)

找工业软件教程找老陈 + 关注
实名认证
服务提供商

寻找教程;翻译教程;题库提供;教程发布;计算机技术答疑;行业分析报告提供;

1亿VIP精品文档

相关文档