嵌入式中烧写程序的基础知识有哪些

Posted wkmaaa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式中烧写程序的基础知识有哪些相关的知识,希望对你有一定的参考价值。

嵌入式的基础知识学习中,烧写程序是必备的知识点之一,需要把写的程序代码烧写到单片机上,在单片机上检验写的程序代码是否正确,是否能够正常运行,下面我们来学习下什么是烧写和固件、常见的几种烧写方式、三种编程方式的区别。

 

技术分享图片

 

简单整理下固件、烧写的定义以及烧写过程的几种方式。

一、什么是烧写(下载)和固件

嵌入式系统需要预先将程序写入ROM/FLASH中,在启动时载入运行这些程序,将已经生成的程序写入ROM/FLASH的过程叫做烧写。这样固化在存储介质上的文件叫固件(firmware)。那么烧写即为更新固件的过程。

二、常用的几种烧写方式

把系统当做一个存储区域进行烧写;

采用专门接口及专用的下载线将程序烧写到固件中。这时CPU除了执行单片机本身的指令之外,还能执行对存储器进行操作的特殊指令,擦除、烧写和校验指令。先通过传输相应的指令给CPU执行(擦除、读入、烧写、校验等),这样完成烧写。现在普遍使用的JTAG仿真器也是这样,CPU能执行JTAG的特殊指令,完成对固件的烧写操作。

引导程序,即单片机中已经存在了一个烧写程序。启动单片机时首先运行这程序,程序判断端口状态,识别为烧写的特殊状态,就从某个端口读取数据,然后写入到存储单元中。如果是正常的状态,就转到用户的程序开始执行。需要触发硬件选择用户程序模式还是烧写模式。

三、关于ISP、ICP、IAP三种编程方式区别

ISP:In System Programing,在系统编程

ICP:In Circuit Programing,在电路编程

IAP:In Applicating Programing,在应用编程

ICP工作方式:只需要上电,处理器无需工作,更新整个存储内容的方式,不需要处理器中间操作,不需要存在引导程序,属于硬件单独处理行为,芯片编成方式??

ISP工作方式:可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程,理解上需要一些必要的硬件逻辑或引导代码,如使用JTAG下载;

IAP工作方式: IAP从结构上将Flash存储器映射为多个存储体区域(引导区、运行区、下载存储区等等),第一个项目程序存放在应用引导区,不执行正常的功能操作,而只是通过某种通信管道接收程序或数据,执行对其他部分代码的更新;其他代码才是真正的功能代码,存放在程序存储区。当芯片上电后,首先运行应用引导区程序,它作如下操作,检查是否需要对第二部分代码进行更新,存在更新则进行更新后执行,否则直接执行。所以引导区程序应该不可以IAP方式更新。

那么问题来了,你觉得这三种方式的灵活度如何排序呢?你最常用的是?

恭喜你阅读完了本文,相信通过本文的阅读你已经了解了什么是烧写程序,常用的几种烧写方式是什么,三种编程方式之间有什么区别等,希望大家掌握理解,好了文末的问题你的答案是什么呢?欢迎你来创客学院培训班进行交流。

以上是关于嵌入式中烧写程序的基础知识有哪些的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式驱动开发要具备哪些方面的知识

零基础学习嵌入式需要注意哪些知识

嵌入式Linux之旅——环境搭建篇之烧写裸机程序

amlogic S905X udpate imge的压缩和解压

在Linux系统下通过TFTP或NFS烧写内核

arduino嵌入式开发--使用涂鸦wbr3远程控制