我学习了有关编码控制器的知识,但从未真正将代码放在物理设备上。我试图弄清楚开始开发基本的嵌入式系统所需的条件。
例如,如果我有PIC18F1330,则我有MPLAB IDE和XC8编译器。太好了,所以我已经编译了代码,现在可以将其放到控制器上了。将PC上已编译的代码传输到控制器上,我需要做什么?
我看过诸如在线调试器和PIC套件之类的东西。我现在迷路了。
我学习了有关编码控制器的知识,但从未真正将代码放在物理设备上。我试图弄清楚开始开发基本的嵌入式系统所需的条件。
例如,如果我有PIC18F1330,则我有MPLAB IDE和XC8编译器。太好了,所以我已经编译了代码,现在可以将其放到控制器上了。将PC上已编译的代码传输到控制器上,我需要做什么?
我看过诸如在线调试器和PIC套件之类的东西。我现在迷路了。
Answers:
有几种方法可以将代码刷新到微控制器。
在网络上,您会发现很多自制的程序员,但他们通常也具有自制的软件,并且没有(很好地)集成在MPLAB IDE中。
Microchip最便宜的解决方案是售价约40欧元的PicKit,它仅通过USB连接到PC。尽管PicKit有一些调试选项,但是还有功能更强大的“在线调试器” ICD,价格约180欧元,它具有更多的调试功能,但是当然也可以使芯片闪存。
我一直觉得PicKit对我来说已经足够了。
随着微芯片发布PicKit的固件和原理图,那里有第三方版本,但是如果您购买它们,请确保您确实得到了您认为得到的东西。我曾经看到过PicKit 3的报价,但不确定它是否不是PicKit 2。
就像评论一样:有些Microchip MCU可以自我刷新。例如,我们使用了具有嵌入式USB的PIC18F2450 / 2550/4450/4550系列,并在其上放置了引导加载程序。关闭跳线后,MCU会在启动时进入引导加载程序模式,您可以使用代码刷新MCU。Microchip可以提供所有这些东西。
要使用此功能,您需要对代码进行一些修改。当然,您需要一个普通的编程器来初始刷新MCU上的启动加载程序。因此,如果您有程序员,则此功能没有任何意义。但是,如果您希望向客户更新固件,那就太好了。
由于您将MPLAB IDE与XC8 C编译器一起使用,因此可以从菜单Configure-> Select Device检查兼容性(绿色指示灯表示完全支持,黄色表示部分支持,而红色则不支持)。
现在,最好的选择是Pickit 3,ICD3或RealICE(按价格递增的顺序)
以下是兼容的程序员,调试器:
您确实希望拥有调试支持以及编程支持。
一旦安装了设备驱动程序,您就可以选择并连接到它(给定的设备在给定的时间只能安装为调试器或编程器):
然后,在编译程序(以调试或发布形式)时,可以使用以下所示的按钮对微控制器进行编程:
在物理上,PICkit或其他调试/编程器单元具有一个连接器,您可以将其连接到系统。有6个引脚,其中5个用于电源和接地。
在撰写本文时,有3种将二进制文件刻录到微控制器的主要方法。根据特定的微型,它们中的任何三个都可以使用。最古老的方法是特定于设备的编程器/调试器。Microchip器件的当前器件为Pickit3 / ICD3,它们与所有当前的PIC单片机以及某些较旧的PIC单片机兼容。您不能使用它们来编程其他制造商制造的零件。
第二种方法称为引导加载程序。这是在您拥有零件之前刻录到微机中的一个小程序。引导加载程序允许通过Micro的标准接口进行编程-UART,SPI,以太网等。ARM芯片通常预加载了引导加载程序以及AVR。如果存在引导加载程序,则不需要专有的编程工具,但是您将无法轻松地进行单步调试。
第三个称为JTAG。它是半通用接口,您可以使用它来编程许多不同的部分并进行调试。您将需要一个称为JTAG加密狗的装置。某些PIC部件具有JTAG。ARM芯片通常具有JTAG,许多没有其他调试接口。
通用配方:
你快到了。您具有以非常用户友好的方式执行1和2的集成开发环境。它甚至具有与程序员的接口,因此您无需担心什么是HEX文件(单击“播放”即可完成)。
但是,您仍然需要物理编程器才能将设备与PC相连-那里有用于PIC的编号。Pickit就是其中之一。如果您打算认真对待嵌入式编程,则应该投资在线调试器(ICD)。它既是程序员,又是使您可以窥视或戳探微型计算机中的变量和寄存器,甚至随意执行并停止程序的工具。