https://m.toutiao.com/is/NF5est1/?=如何把程序写入到MCU芯片呢
那问题来了,MCU芯片作为一个里面只有晶体管的单身狗它是如何变成一个万物皆可的海王的呢?
就像武侠小说里练就神功第一步首先得打通任督二脉一样,想要MCU芯片变成万物皆可的海王第一步首先就要将程序这个东西注入到他的身体里面打通他的任督二脉,这样他才有机会开窍展现自己的魅力和价值,然后一步一步走上巅峰。
这就是我们今天所要讲的,程序是如何写入到MCU里面的。这大概分为以下几步:
第一、程序编写
MCU芯片的程序开发主要使用两种语言——汇编和C语言。汇编语言是用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址;C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言;两种语言各有各的优点和缺点,不能完全说哪个好和不好,需要根据不同的芯片类型和功能需求选择使用哪种语言做开发。如DSH551-LQFP48的芯片,其内置是 4K×16 位一次性可编程存储器(OTP ROM),使用在温控器或者遥控上时就适合使用汇编语言。
第二、编译器生成hex文件
开发的程序需要转换格式才能使用在MCU芯片里面,而这个格式就是利用编译器转换的hex文件格式。hex文件格式是Intel公司提出的按地址排列的数据信息,数据宽度为字节,所有数据使用16进制数字表示, 常用来保存单片机或其他处理器的目标程序代码。这里我们要说一下编译器,每个品牌的芯片对应的编译器都不一样,目前还不存在通用型的编译器。如51的编译器使用的就是keil或tkstudio、PIC的是MAPLAB+PICC 、飞思卡尔使用则是COLDFILE。
第三、程序烧录
烧录有分为离线烧录和在线烧录这两种方法,但一般大多数都使用在线烧录。因为离线烧录时如果生产测试出现错误,需要返回重新修改时需要把芯片从适配器上面拆下来,然后再重新按照规定的流程进行烧录,这种方法对人力物力耗费较大且成本较高,所以一般都不推荐使用离线烧录。
在烧录时,程序是以二进制(0低电平和1高电平)的形式,对芯片的内部相应MOS管栅极进行充电或放电,形成数据保存。例如:一窜00000001数据送人存储器,MOS栅极进行充放电保存,前面0000000七个对对应的MOS管放电以低电平形式保存,最后一个1,是以给MOS管栅极进行充电形式保存。这样就八个MOS管就保存00000001的这窜数据。
读取时,MOS管栅极放电输出为O,充电输出为1,将一连串的数据读取输出。
MCU芯片工作时首先是读取程序存储器的数据,然后是完全按照程序数据来工作的;当给MCU芯片内存储器烧录不同的程序,MCU芯片工作就不相同。
以上就是MCU芯片程序从研发到写入芯片储存器的三大步骤,不知道讲解的是否清晰呢?
联系客服