当前位置:首页 > 芯闻号 > 充电吧
[导读]1.A区和B区的大小是可以通过熔丝位的设置改变大小的,但RWW,NRWW是固定的,不会改变。对于M8来说,B区的大小可设置为128、256、512、1024字,而RWW/NRWW则固定为3072/1024字。

1.A区和B区的大小是可以通过熔丝位的设置改变大小的,但RWW,NRWW是固定的,不会改变。对于M8来说,B区的大小可设置为128、256、512、1024字,而RWW/NRWW则固定为3072/1024字!

2.MCU挂起,表示MCU“暂停”工作,即暂时停止取指令、响应中断等,待前一个硬件操作完成后再继续执行后续的指令操作。

3.当MCU对RWW区域进行页读取、写入或擦除时,一旦指令发出后,操作将由硬件自动完成(例如由硬件将RWW区中的一页32字读到临时缓冲页中),这个操作过程需要占用一定的时间,在这段时间内,MCU可以读取NRWW区中的指令并执行。这与“一边读写RWW区域,一边干别的什么事”是不同的概念。这同当AVR的硬件在做AD转换,或URAT正在接收一个字节数据时,MCU也同时执行一条指令是类似的。下面给一个例子:
   a.从UART口读入32个字,存入RAM(程序在NRWW区域的B区中)
   b.使用循环将32个字写入临时缓冲页中(程序在NRWW区域的B区中)
   c.将00000101写入SPMCR寄存器,并执行SPM指令实施对RWW区中的页写入(程序在NRWW区域的B区中)
   d1.等待3.7ms,待页写入操作完成(程序在NRWW区域的B区中)
   d2.或从UART口读入后续的32个字,存入RAM(程序在NRWW区域的B区中)!!!
   e.3.7ms到(最好使用SPM中断响应):如采用d1此时则做d2;采用d2则直接到f
   f.跳到b,更新RWW中的下一页。


   在这个简单的操作过程中,采用d2的方式,就是利用了“对RWW操作时,可以同时对NRWW区进行读操作”的特点。它减少了更新FLASH的时间。但对NRWW区更新时,不能采用上面的操作过程。一旦对NRWW区中的页进行更新操作(C后),MCU将暂停,直到操作完成后,MCU才读取下一条指令,继续运行。这是由芯片内部的硬件电路控制,不是由指令控制的。

4.AVR的BOOTLOAD功能同其它一些芯片不同,它的BOOTLOAD程序没有固化在芯片内部(出厂为空),而是需要由用户设计实现(实际上,你第一次下载BOOTLOAD程序还必须使用其它的方式编程,如ISP、JTAG等),因此对一般的用户掌握起来有一定的困难,不如一些其它芯片的BOOTLOAD使用方便。但对高手来讲,可以根据实际需要编写高级、高效、专用的BOOTLOAD程序,如从一个U盘读取数据,更新用户的应用程序;编写一个时间炸弹,或对用户的密码进行验证,10次不对则将系统程序销毁等等。简单意味着使用方便,但灵活和适应性差,而灵活性需要你具备更高的能力去驾驭它。可能会有一天,在单片机的系统上也出现了“病毒”程序,其原因就是使用了固化的BOOTLOAD程序。由于固化的程序必须有统一开放的接口,那么用一个带“病毒”的应用程序更新原来的应用程序也就轻而易举了。

5.一般情况下,不提倡用B更新B,一旦把B中的BOOTLOAD程序破坏了,那么整个BOOTLOAD的功能便无法实现了。其整个概念为,“B区可以自编程,但不要把B区中的BOOTLOAD程序破坏”!给2个设计参考。
  a.设置B区为1024字,其低768字为中断向量区和中断服务程序及其他程序,高256字为BOOTLOAD程序。此种情况,可以运行高256字的BOOTLOAD程序,更新低768字中的程序。
  b.BOOTLOAD程序也要更新的设计:
    必须将bootload程序限制在一个规定的长度以内,假定为256字。
    B区设置为1024字,前512字为中断向量区和中断服务程序,接下来的256字空间保留,准备放新的BOOTLOAD程序,最后256字为当前的BOOTLOAD程序。


    当需要更新BOOTLOAD程序时,使用当前的BL程序将新的BL2程序写入保留的256字空间,并同时更新应用程序转入BL的入口,指向BL2,那么下次程序更新时,就会运行新的BL2程序了。

以上供各位参考,要使用BL了,说明你已经具备了相当的水平了:)。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

伦敦2024年4月16日 /美通社/ -- ATFX宣布任命Siju Daniel为首席商务官。Siju在金融服务行业拥有丰富的经验和专业知识,曾在全球各地的高管职位上工作了19年以上。Siju之前担任FXCM首席商务官...

关键字: NI AN SI BSP

学好电子技术基础知识,如电路基础、模拟电路、数字电路和微机原理。这几门课程都是弱电类专业的必修课程,学会这些后能保证你看懂单片机电路、知道电路的设计思路和工作原理;

关键字: 单片机 编程 电路设计

单片机编程需要使用专门的软件工具,这些工具能够帮助程序员编写、调试和烧录程序到单片机中。以下是一些常用的单片机编程软件:

关键字: 单片机 编程 软件工具

Java语言和C语言是两种不同的编程语言,它们在语法、特性和应用领域上有许多差别。下面将详细介绍Java语言和C语言之间的差异以及它们各自的技术特点。

关键字: Java语言 C语言 编程

嵌入式系统是现代生活中无处不在的一部分。它们包括了我们的家电、汽车、智能手机、医疗设备等等。这些系统的工作必须高效、可靠,因为它们往往控制着生活中的关键方面。而C语言作为一种广泛用于嵌入式系统开发的编程语言,其质量和稳定...

关键字: 嵌入式系统 C语言 编程

在嵌入式系统开发领域中,C语言是使用最广泛的编程语言之一。它具有高效、灵活和可移植的特点,成为嵌入式系统设计师的首选语言。本文将介绍C语言编程的基本概念、特点以及在嵌入式系统开发中的应用。

关键字: 嵌入式系统 C语言 编程

常州2023年9月25日 /美通社/ -- 9月23日,由江苏省商务厅指导,世界中餐业联合会、常州市人民政府主办的"第三届中华节气菜大会暨首届江南美食节"在江苏常州开幕。文化和旅游部国际交流与合作局一...

关键字: BSP 可持续发展 大赛 质量控制

北京2023年9月25日 /美通社/ -- 9月21日,由中国质量报刊社·中国质量新闻网主办的第六届食品高质量发展交流会在北京举行,会议主题为"高质量,新生活",旨在推动食品行...

关键字: 自动化 BSP ISO9001 NAS

北京2023年9月23日 /美通社/ -- 近日,主线科技正式获准在北京市智能网联汽车政策先行区道路开启常态化测试与示范,将与物流客户在真实开放的城区道路场景中,率先开启基于L4级别自动驾驶能力的智能卡车运输示范。 随...

关键字: 智能卡 测试 高速公路 BSP

在编程和计算中,运算符优先级是解释和计算表达式的一个关键因素。本文旨在阐述运算符优先级的概念、规则及其在表达式中的应用,以帮助读者更好地理解和运用运算符优先级。

关键字: 表达式 运算符 编程
关闭
关闭