430f5 单片机 bootbootloar和app怎么一起烧进去

avr单片机boot_loader实现指导_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
avr单片机boot_loader实现指导
&&avr单片机boot_loader实现指导
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
还剩4页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢单片机是一种集成的电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器(CPU)、随机存储器(RAM)、只读存…阅读全文关注话题分享阅读全文59K1,371 条评论分享收藏感谢阅读全文10K2,154 条评论分享收藏感谢阅读全文10K451 条评论分享收藏感谢阅读全文10K327 条评论分享收藏感谢阅读全文7.6K409 条评论分享收藏感谢54,695  BOOT区的由来基于一个简单的道理,即单片机的程序是保存在FLASH中的,要运行程序就必须不停的访问FLASH存储器。对于一般的FLASH存储器,数据的写入需要一定的时间来完成,在数据写入完成之前,存储器中所有的数据都是不可读的,这就在运行旧程序和写入新程序之间造成了一个矛盾。
  使用BOOT区是解决这个矛盾的方法之一,它将FLASH存储器从物理上分为两个独立的区域,对其中的一个区的数据写入不会影响到另一个区的数据读取操作。我们可以让单片机的程序在其中一个区(通常是BOOT区)运行,而运行着的程序代码写入另外一个区(通常为应用程序区)内。
  AVR高档单片机ATmega系列中含有BOOT代码区,即程序引导区,也可称器件自身监控区,有了此BOOT区监控,该器件就可对自己器件的Flash程序存储器及EEPROM数据存储器进行读、写操作,即实现自编程功能,也可称IAP在系统应用中编程,这种自编程程序区我们称其用户管理程序,简称用户程序。
  BOOT区大小可根据实际需要用寄存器设定,并可锁定加密,使外界无法读取其监控。如果BOOT区监控设计得好,可把该器件的主要、关键控制对象放在BOOT区监控内(如中断控制),其它工作让用户自己设计,可变成傻瓜式控制器、检测仪,可远程对嵌入式设备进行检测、维护、升级等操作。也可通过有线、无线网络监控设备。实现秀才不出门,也可管世界。这种带BOOT区监控的AVR器件,可应用于程序、数据需变动的场合;可用于自适应、自修正场合;可用于闭环控制,人工智能;&可用于统一计量、计价,又必须在同一时间内快速调正的设备中(例:IC卡计费电话机);&可用于&&  有了BOOT区监控,用户程序可通过单片机通讯口与PC机RS232接口来写用户程序,可省去AVR串行或并行下载电缆,这对外出维护设备带来方便。双龙SL-MEGA8开发实验器出厂就提供BOOT区演示监控,用标准RS232通讯电缆就可做程序下载实验(对Flash程序存储器及EEPROM数据存储器实验擦、写、读取)。这样对有的AVR高档单片机编程方法有:编程器编程,ISP串行、并行下载编程,JTGA线编程,IAP在应用中编程(仅用串行通讯线)多种形式,给科研、生产带来方便。可以自己设计编程器件,对用户将提供BOOT区监控方案框架,你只需简单连接,就可组成自己的BOOT区监控。以上设计思想也适合所有AVR高档单片机ATmega系列中含带有BOOT代码区的器件。
&   AVR的BOOTLOAD功能同其它一些芯片不同,它的BOOTLOAD程序没有固化在芯片内部(出厂为空),而是需要由用户设计实现(实际上,你第一次下载BOOTLOAD程序还必须使用其它的方式编程,如ISP、JTAG等),因此对一般的用户掌握起来有一定的困难,不如一些其它芯片的BOOTLOAD使用方便。但对高手来讲,可以根据实际需要编写高级、高效、专用的BOOTLOAD程序,如从一个U盘读取数据,更新用户的应用程序;编写一个时间炸弹,或对用户的密码进行验证,10次不对则将系统程序销毁等等。简单意味着使用方便,但灵活和适应性差,而灵活性需要你具备更高的能力去驾驭它。可能会有一天,在单片机的系统上也出现了&病毒&程序,其原因就是使用了固化的BOOTLOAD程序。由于固化的程序必须有统一开放的接口,那么用一个带&病毒&的应用程序更新原来的应用程序也就轻而易举了。
相关问题的总结:
1.AVR自编程是如何实现的?答:要想回答这个问题必须先了解AVR的FLASH的分区结构:AVR单片机FLASH分成RWW(READ-WHILE-WRITE)和NRWW(NO-READ-WHILE-WRITE)两个区;其中RWW区的含义是:如果Boot Loader 软件是对RWW 区内的某一页进行编程,则可以从Flash 中读取代码,但只限于NRWW 区内的代码。在Flash 编程期间,用户软件必须保证没有对RWW 区的读访问。如果用户软件在编程过程中试图读取位于RWW 区的代码( 如通过call/jmp/lpm指令或中断),软件可能会终止于一个未知状态。为了避免这种情况的发生,需要禁止中断或将其转移到Boot Loader 区。Boot Loader 总是位于NRWW 存储区。只要 RWW 区处于不能读访问的状态,存储程序存储器控制和状态寄存器(SPMCSR) 的RWW 区忙标志位RWWSB 置位。编程结束后,要在读取位于RWW 区的代码之前通过软件清除RWWSB。而NRWW区的含义是:在Boot Loader 软件更新RWW 区的某一页时,可以读取位于NRWW 区的代码。当 BootLoader 代码更新NRWW 区时,在整个页擦除或写操作过程中CPU 被挂起。而且AVR还自带读写程序区的指令(LPM读程序区指令,SPM写程序区指令),实现程序的更新操作。================================================================================2.能否在进行自编过程中,修改复位中断向量的位置(从APP区移至BOOTLOADER区或者相反)?答:不能。我们一般通过编程Boot复位熔丝位使得复位向量指向Boot 区的起始地址。这样,复位后Boot Loader 立即就启动了。加载了应用代码后,程序再开始执行应用代码。但,有一点必须指出的是,MCU 本身不能改变熔丝位的设置。也就是说,一旦Boot 复位熔丝位被编程,复位向量将一直指向Boot 区的起始地址。熔丝位只能通过串行或并行编程的方法来改变。故,在自编程过程中,无法实现修改复位中断向量的位置。================================================================================3.如何将一个函数定义在BOOT区呢?答:首先对函数进行连接编译声明,再先修改MAKEFILE里连接编译的相关选项如M16里想将GETCHAR(VOID)定位在BOOT区里则: (1)声明GETCHAR(VOID __attribute__ ((section (".bootloader"))); (2)在"LDFLAGS=-Wl,-Map=$(TRG).map,--cref"行加进",--section=.bootloader=0x3800"声明即可================================================================================ 4.如何将整个工程连接编译的起始地址定义在BOOT区首地址答:只需修改MAKEFILE里的TEXT段的值即可 如:"LDFLAGS=-Wl,-Map=$(TRG).map,--section-start=.text=0x3800"================================================================================5.在编译BOOTLOADER时设置引导程序的起始,为什么与STUDIO显示的设置RWW区大小显示的不一样如设置M16时会显示(Boot Flash size = 1024 words Boot start address=$1c00;[BOOTSZ=00]:default而在MAKEFILE里则是.startsection.bootsection=0x3800呢?答:在STUDIO里是用字描述地址,而在GCC却用字节描述。================================================================================6.实现AVR的BOOTLOADER工作需要注意那些事项?答:(1)了解AVR的FLASH的结构分区的含义及APPLICATION; (2)理解AVR GCC的BOOT.H库文件的例子,并进行测试; (3)懂得利用AVR GCC的MAKFILE连接编译选项,修改函数或者程序的编译时重定位操作; (4)进行简单仿真的测试; (5)策划正确而安全的通讯协议与上位机软件进行通讯;
阅读(...) 评论()单片机bootloar和app怎么一起烧进去_百度知道
单片机bootloar和app怎么一起烧进去
我有更好的答案
这个要看单片机的架构,如果能进入到一个可以将单片机内部FLASH通信端口映射到IO口的话,这个肯定是可以实现的
采纳率:39%
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。在电子工程世界为您找到如下关于“BOOT方法”的新闻
BOOT方法资料下载
U-BOOT的启动流程及移植
摘要:嵌入式系统一般没有通用的bootloader,u-
boot是功能强大的bootloader开发软件,但相对也比较复杂。文中对u-
boot的启动流程作了介绍,详细给出了u-
boot在S3C44B0开发板上的移植方法和步骤。
关键词:bootloader;u-boot;嵌入式系统;移植;S3C44B0...
gdbserver 106\r\n\r\n第6章 Bootloader 108\r\n6.1 Bootloader 108\r\n6.1.1  Bootloader介绍 108\r\n6.1.2 Bootloader的启动 109\r\n6.1.3 Bootloader的种类  111\r\n6.2 U-Boot编程 113\r\n6.2.1 U-Boot工程简介 113\r\n6.2.2...
5.3.2 编译gdbserver
第6章 Bootloader
6.1 Bootloader
6.1.1 Bootloader介绍
6.1.2 Bootloader的启动
6.1.3 Bootloader的种类
6.2 U-Boot编程
6.2.1 U-Boot工程简介
6.2.2 U-Boot源码结构
6.2.3...
3.4.4 Glibc库
3.5 交叉编译
3.5.1 创建编译环境
3.5.2 编译binutils
3.5.3 编译bootstrap_gcc
3.5.4 编译Glibc
3.5.5 编译完整的gcc
3.5.6 编译GDB
3.5.7 成果
3.5.8 其他交叉编译方法
3.6 通过二进制软件包创建...
3.4.4 Glibc库
3.5 交叉编译
3.5.1 创建编译环境
3.5.2 编译binutils
3.5.3 编译bootstrap_gcc
3.5.4 编译Glibc
3.5.5 编译完整的gcc
3.5.6 编译GDB
3.5.7 成果
3.5.8 其他交叉编译方法
3.6 通过二进制软件包创建...
5.2 A/D转换器接口
5.2.1 A/D(模/数)转换的方法和原理
5.2.2 S3C2410A的A/D转换器
5.2.3 S3C2410A A/D接口编程实例
5.3 D/A转换器接口
5.3.1 D/A(数/模)转换器的方法和原理
5.3.2 S3C2410A与D/A转换器的接口电路
5.4 键盘与LED数码管接口
块上的Bootloader 程序也能够运行在另一块板子上,通常也都需要修改Bootloader 源程序。嵌入式系统的硬件部分不可能是完全一致的,不可能有通用的bootloader。因此,需要针对硬件系统进行有关引导程序的设计。对于嵌入式系统来说,引导程序比较复杂,一般采用对基本符合硬件体系要求的现有引导程序进行移植,然后加以应用的方法设计引导程序。本文我们选择功能强大的U-BOOT 进行移植。...
各种BOOTLOADER的介绍
各种BOOTLOADER的介绍
BOOTLOADER是硬件启动的引导程序,是启动OS的根本
要进行烧录BOOTLOADER时要从主板的JTAGG口进行烧录,计算机端要用JTAG调试器和应该安装JTAG的驱动程序!
在计算机端安装JTAG的驱动方法...
。默认情况下,在IBOOT为”0”的状态下,BOOT代码将映射到h
7ff_ffffh。但是,这种配置可以通过在系统复位之前改变IBOOT的状态来改变,或通过直接编程EMI_REMAP寄存器RM1位的值来改变。MT6226系统提供两种开机方法: o 启动系统后从工厂编程BOOT代码运行指令。 o 启动系统后从外部FLASH或ROM设备运行指令。BOOT CODE如下所示...
到内存中,设定一些寄存器,然后将控制权交由内核,该过程中,关闭 MMU 功能。通常, 内核都是以压缩的方式存放,如 zImage,这里有两种解压方法: 使用内核自解压程序。 arch/arm/boot/compressed/head.S 或 arch/arm/boot/compressed/head-xxxxx.S arch/arm/boot/compressed/misc.c...
BOOT方法相关帖子
:/# reboot
root@Widora:~# df -hFilesystem& && && && && & Size& && &Used Available Use% Mounted onrootfs& &&nbsp...
& &UCI是Unified Configuration Interface的缩写,翻译成中文就是统一配置接口,用途就是为OpenWrt提供一个集中控制的接口。OpenWrt实现的这个工具,能够让你的不管是Lua还是PHP程序,或者SHELL程序或C程序,只要执行命令传输参数就能达到修改系统参数的目的,请参考本文后面的命令行实用工具。系统的配置应该简单直接,UCI...
对不对,来确认话筒电路OK。 (或者这个帖子 [url]http://bbs.eeworld.com.cn/thread--1.html[/url] 的方法也不错)
第二步才是自己写频谱分析的PC软件。
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=2348586&ptid=632271][color...
资源不会产生变化,变化的只是加入了pipeline寄存器。因此这种架构具有非常明显的 资源优势。那么应该在还没写代码进行综合的时候准确的评估其逻辑资源呢?
方法如下:
1. Booth编码器的资源。假设分解为n比特的部分积,那么只要知道平均做booth编码时每比特大概占用多少资源即可。现分析如下:做部分积的时候,有5 种可能性,0, a, -a,2a,-2a(带符号移位)。这五种可能性取决于...
对于dsp,大于48K 的程序BOOT的方法:
& && &&&对于dsp,片内的BOOT 程序在上电后将数据区的内容,搬移到程序区的RAM 中,因此FLASH 必须在RESET 后放在数据区。由于dsp,数据区的空间有限,一次BOOT 的程序不能对于48K。解决的方法如下:
& && &nbsp...
F2812烧写FLASH及其搬移程序(bootloader)方法所需准备“材料”:
1、F2812评估板一套
2、DSP--CCS平台
3、仿真品一套
4、要烧写及搬移的程序
5、TI的烧写插件
6、合众达烧写算法程序
7、自己的搬移程序
bootloader操作步骤
(前提是程序编译通过,并且可以通过仿真器在RAM中运行)
(假设要烧写的程序为app.pjt,烧写算法程序...
loader 的程序中,这段特定启动代码通常驻留在ROM 存储器的起始位 置以便在DSP 复位后能自动被加载到内存地址0 处。当1K 字节代码被加载完毕后,CPU 开始从地址0 处执行,也就是执行二级bootloader 的内容。二级bootloader 的功能就是将程序的剩余部分拷贝到内存中。
2 启动方法的设计与实现
采用二级bootloader 的DSP 启动方法的实现大体分为四步:配置存储器;编写...
there are total 3 IIC bus on evaluation board,each bus has its own device,test program only list the device for each bus,not for test。
测试方法(test method)(1)点击“I2C”按钮,启动测试程序。
click“I2C”button,to boot...
、MYIMX6EK314、MYIMX6EK336不支持此方式。
  Instruction:MYIMX6EK200 support this method。MYIMX6EK140、MYIMX6EK314、MYIMX6EK336 don't support this method。
operating guide
  按住评估板底板上的“BOOT SW1”,为评估板硬件复位或重新上电,之后松开...
://github.com/ARMmbed/DAPLi ... e98321ecf6a
编译方法:https://github.com/ARMmbed/DAPLi ... DEVELOPERS-GUIDE.md
已编译的更新文件: 进入bootloader模式后刷入。
速度测试:
【改造】在FRDM-KL02Z板上扩展出SWD及JTAG 楼主很6啊
BOOT方法视频
你可能感兴趣的标签
热门资源推荐

我要回帖

更多关于 430f5 单片机 boot 的文章

 

随机推荐