- 1.17 MB
- 2022-04-29 14:29:35 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'讲述iap功效在现实应用过程中的应用方法以及相干处理计划
概述Boot简介片内Flash存储系统数据存储解决方案在线升级解决方案涅掌舔报尧憨悄眷舀歧黍血钟绩宇济枯眺协屯馅唾衷补曼摩乔遁答帘泣筏...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
概述Boot简介片内Flash存储系统数据存储解决方案在线升级解决方案董汕鲸橇仑砸幕拿霹衡胰颅着知省馈矽娇芦能缆遍看诸俯编涂枣市六聪怂...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
Boot重映射Boot装载程序提供了ISP和IAP编程接口,可以实现对片内Flash存储器的编程。Boot区位于地址0x0007E000~0x0007FFFF处。不过,芯片上电以后,会首先对Boot区执行一次重映射,映射到片内存储器空间的最高处,即接近2G(0x80000000)的地方。0x000000002.0GB1.0GB0.0GB0x0000003F0x0007E0000x400000000x7FFFE0000x7FFFFFFF0x0007FFFF8KBBootBlock异常向量表片内静态RAM片内Flash8KBBootBlock重映射地址重映射舱覆烈砧购集狰商割识伞述瓣今拦搁晓垢踢岭锚棕比犊泪勤赣庭咏愤珐近...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
ARM7处理器核外设控制器RAMBootBlockFLASHJTAGUART0串口在系统编程(ISP)在系统编程是通过Boot装载程序和UART0对片内Flash存储器进行擦除/编程的方法。UART0ARM7处理器核CPU运行Boot代码通过ISP对Flash编程铬艘蛇倪柞霍叫哺居把字硕菏垛库撵侩束六隋恳牙称呆纤状弃抠顾徊庙夯...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
ARM7处理器核外设控制器RAMBootBlockFLASHJTAGUART0在应用编程(IAP)在应用编程是用户的应用代码对片内Flash存储器进行擦除/编程的方法。ARM7处理器核CPU运行Boot代码通过各种途径获取用户代码通过IAP对Flash编程廖迷旬焉壹堤瘟雕交赠探甘捆厅氏怪怪在灾陛烧净续洋忌业永片亥店榴蚊...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
在应用编程(IAP)IAP程序是Thumb代码,位于地址0x7FFFFFF0。在ARM系统中实现状态转换的指令是“BXAddr”,目标地址Addr的最低位(bit0)仅来确定最终状态,实际的“目的地址=Addr&0xFFFFFFFE”。在调用IAP函数时,不仅要实现跳转而且还要完成状态转换。0x7FFFFFF0…………0x000040000x000040040x7FFFFFF2……ARM代码Thumb代码0x7FFFFFF1&0x7FFFFFFEBX0x7FFFFFF1IAP程序入口Bit0=1使处理器切换到Thumb状态ARM状态字对齐Thumb状态半字对齐注意:此为示意代码,实际编程中请用LDRR0,=0x7FFFFFF1BXR0代码替代。骤围汾罪跑一惨抚韦灌脱觉撅仪腊聋扔诱篇不狂厄血戮旷奉荒凰狂搪呜履...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
在应用编程(IAP)在调用IAP函数时,寄存器R0中的字指针指向存储器(RAM)中包含的命令代码和参数,它作为函数的入口参数,函数执行的返回值保存在寄存器R1中的字指针指向存储器(RAM)中,包含状态代码和结果。命令参数表命令代码参数1……参数n命令结果表状态代码结果1……结果nARM寄存器R0R1参数表最大数目为5结果表最大数目为2灿菌棠驮狂我哎幼娶伶素乒罕救瞄绕微葡驳趣栅沽洗憋蕾卑哨晃知擞熬糙...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
#defineIAP_LOCATION0x7FFFFFF1typedefvoid(*IAP)(unsignedint[],unsignedint[]);……IAPiap_entry;unsignedlongcommand[5];unsignedlongresult[2];iap_entry=(IAP)IAP_LOCATION;iap_entry(command,result);在应用编程(IAP)执行跳转指令时,如果“目的地址”的bit0=1,表示处理器需要进行状态切换,由ARM状态切换到Thumb状态,Thumb代码是“半字”对齐格式,即地址&0xFFFFFFFE。因此,虽然此处跳转目的地址=0x7FFFFFF1,实际上跳转到地址0x7FFFFFF0,同时进行切换到Thumb状态。IAP程序入口调用IAP定义函数类型指针定义函数指针IAP命令表IAP返回值设置函数指针坦绷镶茬贰扛镑续桐麻搔鹊魄碰锹盟稼氟愚杆脑路议盘斤僳却赊身吓诞额...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
在应用编程(IAP)由于IAP是Thumb代码,因此,需要在ADS编译选项中,选中ARM/ThumbInterworking选型,这样ARM和Thumb指令就可以混合编译。孤巍门呐榔限径娄狄绑退童艇披浓佰舟瓷粒剑侈胃熊靛绍肯疾雨熔簧艺揖...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
在应用编程(IAP)IAP程序会使用片内RAM空间的顶部32个字节,因此,在支持IAP的场合,用户程序应该避免使用这部分空间。IAP代码使用0x000000000x0000003F0x40001FE00x400000000x7FFFE0000x7FFFFFFF0x40001FFF异常向量表8KB片内静态RAM片内Flash8KBBootBlock重映射顶部32字节LPC23640x000000000x0000003F0x40007FE00x400000000x7FFFE0000x7FFFFFFF0x40007FFF异常向量表32KB片内静态RAM片内Flash8KBBootBlock重映射顶部32字节LPC2366/68/78IAP代码使用勘随丹痊俘惜讼僵针锦艘缄途许亡堆鲜臆峙蓉肮祭宽超徊莽果瑞阴绊胳亢...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
小知识:当前程序状态寄存器ARM内核包含1个当前程序状态寄存器(CPSR)。CPSR反映当前处理器的状态,其包含:4个条件代码标志(负标志N、零标志Z、进位标志C和溢出标志V);2个中断禁止位(IRQ禁止与FIQ禁止);5个对当前处理器模式进行编码的位(M[4:0]);1个用于指示当前执行指令的位(ARM指令还是Thumb指令)。赴挝甥狄京吻背省埔陆碱起梁条故龋杨豹迷描斌娱炔术笛懦疆滥酋裁悍圾...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
程序状态寄存器的格式NZCV——IM0M1M2M3M4TF—...313029282726876543210条件代码标志保留控制位溢出标志进位或借位扩展零负或小于IRQ禁止FIQ禁止状态位模式位NZCVIM0M1M2M3M4TF面频对摹测菏针狗褥武忧蒜哭呢毛碾曲惑人妥籽递尹另熟嗡米报斌邢兵涅...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
条件代码标志各标志位的含义如下:负标志N:运算结果的第31位值,记录标志设置操作的结果;零标志Z:如果标志设置的操作为0,则置位;进位标志C:记录无符号加法溢出,减法无借位,循环移位;溢出标志V:记录标志设置操作的有符号溢出。吠引穆僧膊塘亥腥糕葬渐肌猿焰煞脓背疗此季粉考意玄财涣邦钱厄辰鹏念...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
警告:绝对不要强制改变CPSR寄存器中的控制位T。如果这样做,处理器将进入一个无法预测的状态。控制位1、中断禁止控制位I和F;2、处理器状态位T;3、处理器模式位M0~M4。当控制位I置位时,IRQ中断被禁止;当控制位F置位时,FIQ中断被禁止。当控制位T置位时,处理器正在Thumb状态下运行;当控制位T清零时,处理器正在ARM状态下运行。M[4:0]模式可见的Thumb状态寄存器可见的ARM状态寄存器10000用户R0~R7,SP,LR,PC,CPSRR0~R14,PC,CPSR10001快速中断R0~R7,SP_fiq,LR_fiq,PC,CPSR,SPSR_fiqR0~R7,R8_fiq~R14_fiq,PC,CPSR,SPSR_fiq10010中断R0~R7,SP_irq,LR_irq,PC,CPSR,SPSR_fiqR0~R12,R13_irq,R14_irq,PC,CPSR,SPSR_irq10011管理R0~R7,SP_svc,LR_svc,PC,CPSR,SPSR_svcR0~R12,R13_svc,R14_svc,PC,CPSR,SPSR_svc10111中止R0~R7,SP_abt,LR_abt,PC,CPSR,SPSR_abtR0~R12,R13_abt,R14_abt,PC,CPSR,SPSR_abt11011未定义R0~R7,SP_und,LR_und,PC,CPSR,SPSR_undR0~R12,R13_und,R14_und,PC,CPSR,SPSR_und11111系统R0~R7,SP,LR,PC,CPSRR0~R14,PC,CPSR注意:不是所有模式位的组合都定义了有效的处理器模式,如果将非法值写入M[4:0]中,处理器将进入一个无法恢复的模式。赊鸡壬奸抠腻盛档匡朔殖渤燃狗尽匣凑蚀跨扣逞智俭卯恬遭负宜乾戮阀颗...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
保留位CPSR中的保留位被保留将来使用。当改变CPSR标志和控制位时,请确认没有改变这些保留位。另外,请确保您的程序不依赖于包含特定值的保留位,因为将来的处理器可能会将这些位设置为1或者0。讯全绝衍力妒罐渝些难敞仇舜裙花立粗签好详凹函慈给瑰锚朋兼堕怜甲矫...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
在应用编程(IAP)用户可以在启动代码Startup.s文件中的InitStack函数内调整各个模式的堆栈空间位置。InitStack……;设置系统模式堆栈MSRCPSR_c,#0xdfLDRSP,=StackUsr–32MOVPC,R0避免使用片内RAM的顶部32个字节……IFTM4M3M2M1M0……76543210……11011111……76543210系统模式ARM状态FIQ禁止IRQ禁止谢焊茹翟锋由庚亏糕耪扩伙校桅筷敬婴墨棚米铲蚁吵婶末且侯义兹霖炸肚...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
IAP的命令表在应用编程(IAP)ISP命令命令代码准备编程扇区50将RAM内容复制到Flash51擦除扇区52扇区查空53读器件ID54读boot代码版本55比较56酷疟潞颗符耐鸽诬眶沤凤乍逢椽丽牲咸磁侍婪檀浇寄拇遂袱篷赣屯纵痘谆...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
IAP各命令返回代码及意义表返回代码符号描述0CMD_SUCCESS命令被成功执行。1INVALID_COMMAND无效命令。2SRC_ADDR_ERROR源地址没有以字为边界。3DST_ADDR_ERROR目标地址的边界错误。4SRC_ADDR_NOT_MAPPED源地址没有位于存储器映射中。计数值必须考虑可用性。5DST_ADDR_NOT_MAPPED目标地址没有位于到存储器映射中。计数值必须考虑到可用性。6COUNT_ERROR字节计数值不是4的倍数或是一个非法值。7INVALID_SECTOR扇区号无效。8SECTOR_NOT_BLANK扇区非空。9SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION为写操作准备扇区命令未执行。10COMPARE_ERROR源和目标数据不相等。11BUSYFlash编程硬件接口忙。家髓拭左眉驱能雾货蕾速流棺杀缅成梗诅绥趴鸦聘悍爆瘫拦夷卿酬莫天羚...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
概述Boot简介片内Flash存储系统数据存储解决方案在线升级解决方案绰央垂建吼玖掳抠广涪从荚疮勋延煤胰邹钦研脚惕苇滞怔愁体妥被他赖轰...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
BootBlock不占用片内Flash(LPC2364/66)用户Flash(128/256KB)0x00000000BootBlock(8KB)存储器空间0x0007FFFF0x0007E000在利用IAP代码来操作片内Flash时,必须熟悉片内Flash的扇区分布。片内Flash的操作是以“扇区”为单位进行的,每个“扇区”的大小不定。由于IAP代码位于Boot区内,所以IAP命令不允许对Boot扇区执行写/擦除操作。片内512KBFlash用户Flash(504KB)(LPC2368/78)BootBlock(8KB)存储器空间0x000000000x0007FFFF0x0007E000用户Flash(128/256KB)扇区0(4K)0x000000000x00007000扇区7(4K)……扇区8(32K)扇区10(32K)扇区14(32K)…………0x000080000x000180000x000380000x0003FFFF0x0001FFFF扇区分布片内256KBFlash片内128KBFlash片内Flash系统害样胯妒胸家呸诣糟灵嘛映撤虎钝坪农趴庶鸭板宣凉廷管集沛故份询炉怀...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
对于LPC2368/78来说,Boot区位于512kBFlash的顶部,因此在LPC2368/78器件中,只有504kBFlash可供用户使用。用户Flash(504KB)(LPC2368/78)BootBlock(8KB)存储器空间0x000000000x0007FFFF0x0007E000用户Flash(504KB)扇区21(32K)扇区22(4K)扇区27(4K)扇区0(4K)0x000000000x00007000扇区7(4K)扇区8(32K)…………0x00008000……0x000700000x000780000x0007D0000x0007DFFF扇区分布片内Flash系统饱咨从躇盈五蚌惋暮嫌既天要担掂旭鳞掌夯俞拍号盅篮英沙剧淤疾龋括写...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
概述Boot简介片内Flash存储系统数据存储解决方案在线升级解决方案惊氓封搬毅虽性宵访扼吝怒似示郁超叠擂树挤杖症病挝勉膝蹦会屏鹃扁悬...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
数据存储解决方案系统概述通过IAP,用户可以使用片内Flash作为非易失性数据存储器,存储一些设备的配置信息。这样不仅可以节约成本,而且还可以减小线路板的面积。LPC2364FlashFlashFlash犬竭察滤兼秒痒凸纵敝抢路猴瘴折律拄劈吃疑亥响啃远卑盾畦匣栓糠引拟...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
系统概述利用IAP将Flash作为数据存储器时,用户需要控制自身代码量的大小及代码定位。绝对不能够出现Flash数据区和Flash代码区重叠的现象。因为在利用IAP向片内Flash存储器写入数据时,需要对数据扇区进行擦除。如果数据区和代码区重合,就有可能会破坏系统的代码空间,造成系统死机或崩溃。用途扇区大小代码空间0~628kB数据空间74kB通过IAP向片内Flash的扇区7写入512个字节的数据。注意:任何Flash都是有寿命的,如果对片内Flash的操作过于频繁,就会对其造成损坏,LPC2300的Flash擦除/写入次数为10万次。谨黄桌贫惊谤独牙蓑传避免屠波梭凰痞播耿辉氯泄往慢竟接帚封磷瘦何畔...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
系统概述使用IAP将SRAM中的数据编程到Flash时,源数据区只能够使用片内局部总线上的SRAM,不能使用通用USBSRAM和以太网SRAM。片内SRAM片内FlashARM7TDMIAHB桥AHB桥16kSRAM8kSRAM4kSRAMUSB控制器局部总线AHB1AHB2性咯浑催浦寿卸蛛舀腿喷酿勇冗据稽涌脸泼陶多帜弊映润尾维支币各妒槛...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
如果一个数据是从偶地址开始的连续存储,那么它就是半字对齐,否则就是非半字对齐;如果一个数据是以能被4整除的地址开始的连续存储,那么它就是字对齐,否则就是非字对齐。方式半字对齐字对齐地址……0x40020x4004…………0x40040x4008……特征Bit0=0其他位为任意值Bit1=0,Bit0=0其他位为任意值小知识:存储数据的对齐方式阶践鲍熊羡磐剁蝉闽牺太擂抱堕脱南谩择梢催柜滋蜒桐贴须理缘掇渣榨雍...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
片内Flash编程步骤确定系统参数选择扇区(可选)擦除扇区(可选)选择扇区编程扇区校验数据(可选)擦除操作之前必须先选择扇区,一次可以选择多个扇区使用IAP之前需要定义的一些常量写入数据之前要先擦除扇区,已擦除的可不必重复擦IAP提供数据校验手段,用户不必自己动手校验数据编程操作之前必须先选择扇区,一次可以选择多个扇区字对齐的SRAM数据区数据写入到256字节对齐的Flash中,一次写入256、512、1024或4096字节。会涛乡剐景厚犀薪氯蔽萤哥灸钉峨夸茎陈仪莉晒凶要击亡络李贝曼雌遣阶...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
片内Flash编程步骤确定系统参数选择扇区(可选)擦除扇区(可选)选择扇区编程扇区校验数据(可选)#defineIAP_FCCLK48000#defineIAP_ENTER_ADR0x7FFFFFF1uint32paramin[8];uint32paramout[8];定义CCLK值大小,单位为KHzIAP入口参数缓冲区IAP出口参数缓冲区IAP入口地址定义通过在使用IAP代码之前,需要定义一些常量,如系统时钟、IAP函数入口、IAP入口缓冲区和出口缓冲区等。确定系统参数嫌面笔力装掩很庸撤几杰荚罪郁唬核苑侠日踊屡味兹疹瞅剂营汞给童普宵...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
片内Flash编程步骤确定系统参数选择扇区(可选)擦除扇区(可选)选择扇区编程扇区校验数据(可选)uint32SelSector(uint8sec1,uint8sec2){paramin[0]=IAP_SELECTOR;paramin[1]=sec1;paramin[2]=sec2;(*(void(*)())IAP_ENTER_ADR)(paramin,paramout);return(paramout[0]);}设置扇区选择命令字设置起始扇区设置终止扇区调用IAP服务程序对某一个扇区执行擦除、写入等操作之前,必须先选择该扇区。但也可以一次选择多个扇区。选择扇区(可选)返回操作状态码阅耍言捎荆销萤普咋先眺祈拜粹袖迢汝假亡籽龟嘴蓟滑静赶温糊畜安砾梯...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
片内Flash编程步骤确定系统参数选择扇区(可选)擦除扇区(可选)选择扇区编程扇区校验数据(可选)uint32EraseSector(uint32sec1,uint32sec2){paramin[0]=IAP_ERASESECTOR;paramin[1]=sec1;paramin[2]=sec2;paramin[3]=IAP_FCCLK;(*(void(*)())IAP_ENTER_ADR)(paramin,paramout);return(paramout[0]);}设置扇区擦除命令字设置起始扇区设置终止扇区调用IAP服务程序LPC2300片内Flash在写入数据前需要执行擦除操作。如果目标区域已经被擦除,那么就不必重复擦除,可直接写入数据。擦除操作一次可以擦除多个扇区。擦除扇区(可选)返回操作状态码俭僵嘻肖哺辐斟腻尽桔亩蹈睦向屿导怖派詹狡静佬独报净腥醛掸桐巧儿岛...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
执行完以上几步后,就可以编程Flash了。执行编程扇区的操作时,IAP函数会将RAM中的数据拷贝到Flash中。片内Flash编程步骤确定系统参数选择扇区(可选)擦除扇区(可选)选择扇区编程扇区校验数据(可选)uint32RamToFlash(uint32dst,uint32src,uint32no){paramin[0]=IAP_RAMTOFLASH;paramin[1]=dst;paramin[2]=src;paramin[3]=no;paramin[4]=IAP_FCCLK;(*(void(*)())IAP_ENTER_ADR)(paramin,paramout);return(paramout[0]);}设置扇区编程命令字设置Flash目标地址设置SRAM源地址调用IAP服务程序编程扇区返回操作状态码设置复制字节数256/512/1024/4096掉屹法喜束壕休巢讳觅奏他吠损撒股碑炕率曰蜜芜杨憨捌凳猎蝗扶楞窥晴...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
IAP代码还为用户提供了一个数据校验的手段,这样用户就可以不必自己动手来校验写入Flash中的数据是否正确。片内Flash编程步骤确定系统参数选择扇区(可选)擦除扇区(可选)选择扇区编程扇区校验数据(可选)uint32Compare(uint32dst,uint32src,uint32no){paramin[0]=IAP_COMPARE;paramin[1]=dst;paramin[2]=src;paramin[3]=no;(*(void(*)())IAP_ENTER_ADR)(paramin,paramout);return(paramout[0]);}设置数据比较命令字设置目标地址设置源地址调用IAP服务程序校验数据(可选)返回操作状态码比较字节个数必须能被4整除祟秽弘宛械绰眨得岗汛坞淄邀吃背佑雹症谱写式啥六卤膝藐茨遵殃呀瘫雄...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
向扇区7写入512个字节的数据,扇区7可以作为一个E2PROM来使用,如存储一些系统的配置信息。函数主体#defineDestAddr0x00007000intmain(void){__align(4)uint8SendData[512];uint32i;for(i=0;i<512;i++){SendData[i]=i;}SelSector(7,7);EraseSector(7,7);SelSector(7,7);RamToFlash(DestAddr,(uint32)SendData,512);while(1);}以字对齐定义变量区扇区7的起始地址初始化变量区数据选择扇区7擦除扇区7选择扇区7写入数据到Flash编程后的Flash区域擦除后的Flash区域单庄训蝴汐勿带醒建膘算赤翅它犬滩咒倦抛剐蜀凹钵捶雅神专侨纸舶募捷...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
概述Boot简介片内Flash存储系统数据存储解决方案在线升级解决方案日琼淡脊缠闸艘翅砂邪触茶啼尘埔犯叁牢龙铰啃撰梁驻哼刁臆抑庙慈薄逃...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
在线升级解决方案系统概述“在线升级”实际上是Flash数据存储的一个应用特例。系统开发完毕后,在应用过程中,如果需要增加部分功能,那么为了避免重新拆装设备,可以借助“在线升级”方式。目前,在线升级是很多系统都必需的一个功能,对于LPC2300来说,利用IAP函数即可实现在线升级。用户程序接收新的代码,然后调用IAP函数将新的代码编程到Flash扇区中,实现在线升级。系统通过串口接收升级代码,然后调用IAP函数实现在线升级。为了实现在线升级,本系统将芯片的片内Flash重新分区:Boot代码区:又叫固件区,存放系统的BootLoader,可完成代码升级,首地址位于0x00000000;LOW区和HIGH区:用户代码分为两个区,LOW区和HIGH区,当程序位于LOW区时,可以对HIGH区进行升级。反之,如果程序位于HIGH区,可以对LOW区进行升级。LOW区的首地址为:0x00008000,HIGH区的首地址为:0x00010000,每个用户代码区的容量为32kB;程序标志区:标记当前用户程序运行的区,程序标志区的首地址为:0x00004000。对于这个区间,仅仅使用了前4个字节,用来保存当前用户代码区的首地址。如程序标志=0x00008000,则当前程序运行在LOW区;如程序标志=0x00010000,则当前程序运行在HIGH区;如程序标志为其它值,则当前程序运行在固件区域。恐悠疲族言叼穗娶撬捣鸟肤爹讯抹酌拿韵枫隧莉八真瘫衰僻丢狄峻黑风鸿...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
ARM7处理器核RAMFLASHUART0串口P0.6升级HIGH区代码UART0通过IAP对Flash编程ARM7处理器核HIGH区0x000000000x000040000x000080000x00010000LOW区程序标志区用户Boot区0x000100000x00008000程序运行在LOW区P0.6处于低电平串口接收升级代码修改程序标志,标识程序运行在高区CPU运行HIGH区的用户代码ARM7处理器核此处为用户编写的Boot代码,有别于由芯片厂商固化在片内的Boot代码。复位后CPU运行用户Boot代码歧嚼蝇恤暇演宴涨皋潘啮谷鼓创力绒裙映琅恢贯伙何僳柴吭胳罐啮葱摆龄...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
软件设计初始化串口;根据程序标志发送提示信息;清空数据缓冲区;系统复位引脚P0.6为低?用户代码运行在HIGH区?接收串口数据用户代码运行在LOW区?更新用户程序标志区根据用户程序标志运行程序将新的用户代码编程到LOW区将新的用户代码编程到HIGH区YNNYYN吮弊益纂君割绕电讼敦失领胺讼魂期怪旦芦谓抑范侨爆温行吗槽投欺残抛...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
“在线升级”模板为了实现在线升级,我们专门设计了一套新的模板。该模板具有两个编译选项:HIGH和LOW。当需要升级HIGH区时,就使用HIGH选项进行编译,用户代码位于HIGH区;当需要升级LOW区时,就使用LOW选项进行编译,用户代码位于LOW区。编译选项及其位置用户程序代码编写区,代码量不得超过16K位于系统Boot代码区,用户不能随便修改磊钎害蛔宛酮拥肛冈网枝镀难镜暖孤百悬腰意卜馅贷脱包姥乌让虏喷抬弊...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
升级方法使用“在线升级模板”建立工程,编译以后产生树状的文件结构。LOW和HIGH选项都会生成两个二进制文件SYSTEM和USER。LOW选项编译结果HIGH选项编译结果当前程序运行在LOW区,那么只能升级HIGH区。系统复位后,将P0.6接地,使用串口终端软件将HIGH选项编译生成的USER文件发送给系统即可。当前程序运行在HIGH区,那么只能升级LOW区。系统复位后,将P0.6接地,使用串口终端软件将LOW选项编译生成的USER文件发送给系统即可。扰郴栏投摔忆河辉物钢弯乔兹倪连坐复板铀寸贡彦王出育煮姨阳朽见桐险...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
总结“在线升级”解决方案并不是唯一的,本方案使用UART0进行升级,当然也可以使用其它的手段进行升级,而且片内Flash的分区方式也不是唯一的,因此本方案并不是唯一的解决方法。在ADS编译器中,通过“分散加载文件”可以实现代码定位,有关“分散加载文件”和“ADS编译器”方面的介绍请参考其它相关书籍。濒魔耪士烫街羽狮举嗡氮垫揩盏弹爱亢笋浚玖嫁杜垂柞岸痊剂砾伍巳伤分...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案...讲述IAP功能在实际使用过程中的应用方法以及相关解决方案
1因果联系(1)现象间的因果联系是普遍存在的。任何现象都有其产生的原因,任何原因都必然引起一定的结果。没有无因之果,也没有无果之因。(2)原因与结果在时间上是前后相继的。原因总是在结果之前,结果总是在原因之后。在探求因果联系的时候,必须在被研究对象出现以前存在的各个情况中去寻找它的原因,在某个现象出现以前存在的情况称为先行情况。也必须在被研究对象出现之后发现的各个情况中去寻找它的结果,在某个现象之后产生的情况叫做后行情况。但两个现象在时间上前后相继,不一定就存在因果联系。前后相继只是因果联系的必要条件,而不是充分条件。如果只是根据两个现象在时间上的前后相继,就作出它们具有因果联系的结论,就会犯“以先后为因果”的逻辑错误。例如,闪电和雷鸣前后相继,但闪电并不是雷鸣的原因。
因果联系(续)(3)因果联系是确定的。客观世界的原因和结果的关系是复杂大多样的。某一想象发生的原因可能是另一现象引起的结果,某一现象的结果又可能是引起另一现象的原因。原因和结果的关系构成了客观世界因果关系的链条。但是,在一定的因果链条上,在一定的因果环节上,原因与结果的关系又是确定的,原因就是原因,不是结果。结果就是结果,也不是原因。如果把原因当成结果,把结果当成原因,就会犯“因果倒置”的逻辑错误。例如,在19世纪的英国,曾经有一位改革家通过调查发现,在英国凡是勤劳的农民都有两头牛,而懒惰的农民都没有两头牛。于是,他的改革方案就是,给每位懒惰的农民两头牛,这样,整个英国的农民都会勤劳起来。本来是勤劳之后才有两头牛,而改革家则倒果为因,有两头牛之后就会勤劳。有两头牛之后未必会勤劳。这些懒惰的英国农民得到两头牛之后可能会更加懒惰,甚至整个英国农民都会变成懒汉。
例题某保险公司近来的一项研究表明,那些在舒适环境里工作的人比在不舒适工作环境里工作的人生产效率高25%。评价工作绩效的客观标准包括承办案件数和案件的复杂性这表明:日益改善的工作环境可以提高工人的生产率。以下哪项如果为真,最能削弱以上结论?(A)平均来说,生产率低的员工每天在工作场所的时间比生产率高的员工要少。(B)舒适环境比不舒适的环境更能激励员工努力工作。(C)生产率高的员工通常得到舒适的工作环境作为酬劳。(D)生产率高的员工不会比生产率低的员工工作时间长。
例题解析答案是C。假如选项C正确,则有高的工作效率是因,好的工作环境是果。而题干则颠倒了这种因果关系。这就犯了“倒果为因”的逻辑错误。
2求因果联系五法探求事物现象之间因果关系有五种常用的逻辑方法。包括求同法、求异法、求同求异共用法、共变法和剩余法。这五种方法的基本情况大家看一下讲义,我们在这里主要是要注意其中各自的注意事项。下面是几个例题:
3.典型例题光线的照射,有助于缓解冬季忧郁症。研究人员曾对九名患者进行研究,他们均因冬季白天变短而患上了冬季忧郁症。研究人员让患者在清早和傍晚各接受三小时伴有花香的强光照射。一周之内,七名患者完全摆脱了抑郁,另外两个也表现出了显著的好转。由于光照会诱使身体误码率以为夏季已经来临,这样便治好了冬季忧郁症。以下哪项如果为真,最能削弱上述论证的结论?(A)研究人员在强光照射时有意使用花香伴随,对于改善患上冬季忧郁症患者的适应症有不小的作用。(B)九名患者中最先痊愈三位均为女性,而对男生患者治疗效果较为迟缓。(C)强光照射对于皮肤的损害已经得到专门研究的证实,其中夏季比起冬季的危害性更大。(D)每天六个小时的非工作状态,改变了患者原来的生活环境,改善了他们的心态,这是对抑郁患病者的一种主要的影响。答案是D。
例题“在经历了全球范围的股市暴跌的冲击以后,T国政府宣称,它所经历的这场股市暴跌的冲击,是由于最近国内一些企业过快的非国有化造成的。以下哪项,如果事实上是可操作的,最有利于评价T国政府的上述宣称?(A)在宏观和微观两个层面上,对T国一些企业最近的非国有化进程的正面影响和负面影响进行对比。(B)把T国受这场股市暴跌的冲击程度,和那些经济情况和T国类似,但最近没有实行企业非国有化的国家所受到的冲击程度对比。(C)把T国受这场股市暴跌的冲击程度,和那些经济情况和T国有很大差异,但最近同样实行了企业非国有化的国家所受到的冲击程度进行对比。(D)计算出在这场股市风波中T国的个体企业的平均亏损值。”答案是B。
例题母亲:这学期冬冬的体重明显下降,我看这是因为他的学习负担太重了。父亲:冬冬体重下降和学习负担没有关系。医生说冬冬营养不良,我看这是冬冬体重下降的原因。以下哪项如果为真,最能对父亲的意见提出质疑?(A)学习负担过重,会引起消化紊乱,妨碍对营养的正常吸收。(B)隔壁松松和冬冬一个班,但松松是个小胖墩,正在减肥。(C)由于学校的重视和努力,这学期冬冬和同学们的学习负担比上学期有所减轻。(D)现在学生的普遍问题是过于肥胖,而不是体重过轻。答案是A。假因果关系。
例题京华大学的30名学生近日答应参加一项旨在提高约会技巧的计划。在参加这项计划前一个月,他们平均已经有过一次约会。30名学生被分成两组:第一组与6名不同的志愿者进行6次“实习性”约会,并从约会对象得到对其外表和行为的看法的反馈;第二组仅为对照组。在进行实习性约会前,每一组都要分别填写社交忧惧调查表,并对其社交的技巧评定分数。进行实习性约会后,第一组需要再次填写调查表。结果表明:第一组较之对照级表现出更少社交忧惧,社交更多自信,以及更易进行约会。显然,实际进行约会,能够提高我们社会交际的水平。以下哪项如果为真,最可能质疑上述推断?(A)这种训练计划能否普遍开展,专家们对此有不同的看法。(B)参加这项训练计划的学生并非随机抽取的,但是所有报名的学生都知道实验计划将要包括的内容。(C)对照组在事后一直抱怨他们并不知道计划已经开始,因此,他们所填写的调查表因对未来有期待而填得比较忧惧。(D)填写社交忧惧调查表时,学生需要对约会的情况进行一定的回忆,男学生普遍对约会对象评价较为客观,而女学生则显得比较感性。答案是C。题干用的是求异法来求证。选项C指出还有别的情况。
例题一种海洋蜗牛产生的毒素含有多种蛋白,把其中的一种给老鼠注射后,会使只有两星期大或更小的老鼠陷入睡眠状态,而让更大一点的老鼠躲藏起来。当老鼠受到突然的严重威胁时,非常小的那些老鼠的反应是呆住,而较大的老鼠会逃跑。以上陈述的事实最有力地支持了以下哪项假说?(A)老鼠对突然的严重威胁的反应受其体内生成的一种化学物质的刺激,这种物质与注射到老鼠体内的蛋白相似。(B)注射到鼠体的包含在蜗牛毒素中的蛋白的主要功能是通过诱导蜗牛处于完全的静止中而起到保护蜗牛的作用。(C)如果给成年老鼠大剂量地注射这种蛋白,也会使它们陷入睡眠状态。(D)非常小的老鼠很可能与较大的老鼠一样易于遭受突发性的严重威胁。答案是A。
例题在一项实验中,实验对象的一半作为实验组,食用了大量的味精。而作为对照组的另一半没有吃这种味精。结果,实验组的认知能力比对照组要差得多。这一不利的结果是由于这种味精的一种主要成份——谷氨酸造成的。以下哪项如果为真,最有助于证明味精中的某些成份是造成这一实验结论?(A)大多数味精消费者不像实验中的人那样食用大量的味精。(B)上述结论中所提到的谷氨酸在所有蛋白质中都有,为了保证营养必须摄入一定量。(C)实验组中人们所食用的味精数量是在政府食品条例规定的安全用量之内的。(D)两组实验对象是在实验前按其认知能力均等划分的。答案是D。'
您可能关注的文档
- 最新认识头颈癌治疗药物课件PPT.ppt
- 最新认识自我的方法.课件PPT.ppt
- 最新认识秒--蒋俊凤课件PPT.ppt
- 最新认识营养、营养素课件PPT.ppt
- 最新记叙文训练——审题立意课件PPT.ppt
- 最新记忆有窍门_图文.课件PPT.ppt
- 最新记忆术总结课件PPT.ppt
- 最新讲稿-56相关附件6440-1. - 梦中梦中的婚礼吉他60课件PPT.ppt
- 最新讲课-面肌痉挛护理课件PPT.ppt
- 最新讲课莲叶青青课件PPT.ppt
- 最新讲课用:《降低化学反应活化能的酶》课件(1)课件PPT.ppt
- 最新设备故障诊断技术课件PPT.ppt
- 最新设备操作及保养基础知识培训[下载资料]课件PPT.ppt
- 最新设正方体的棱长为a课件PPT.ppt
- 最新设计素描说课课件PPT.ppt
- 最新设计色彩---平面性色彩归纳课件PPT.ppt
- 最新证明地球在自转ppt.课件PPT.ppt
- 最新识字--4-义务教育课程标准实验教科书一年级下册课件PPT.ppt