名人堂再聚首 2023-02-16 13:02 采纳率: 55.8%
浏览 30
已结题

PIC单片机做IAP

大家好!

最近有个项目要在PIC18F45K80单片机上做在线编程,也就是常说的IAP,之前有做过STM32的IAP,PIC系列单片机的没有接触过,主要是这个单片机存储空间有点小,FLASH已经被程序用了80%了,而且也没有外部存储器,可能需要直接擦除原来的程序才能在线更新程序,有经验的朋友能否给个思路?谢谢了!

  • 写回答

3条回答 默认 最新

  • zmy1127 2023-02-16 14:35
    关注

    对于PIC18F45K80单片机的在线编程(IAP),有几种实现方法。以下是其中的一些:

    1.使用内部EEPROM:PIC18F45K80单片机具有内部EEPROM,可以使用EEPROM进行在线编程。EEPROM可以通过编程方式进行读/写,而不需要擦除整个FLASH。如果您的程序存储在FLASH中的某个区域中,可以使用EEPROM存储新程序的数据,然后将其加载到FLASH中。使用EEPROM进行在线编程的优点是,可以避免在更新程序时擦除整个FLASH的过程,因此可以节省时间。

    2.使用Bootloader:另一种常见的在线编程方法是使用Bootloader。Bootloader是一段特殊的程序,用于启动单片机并准备它进入在线编程模式。在进入在线编程模式后,Bootloader将读取新程序的数据,并将其写入FLASH中。使用Bootloader进行在线编程的优点是,它可以在不破坏现有程序的情况下,更新程序代码。

    3.直接擦除FLASH:如果您的程序存储在FLASH的整个空间中,或者存储在FLASH的第一个扇区中,那么在在线编程时,您可能需要擦除整个FLASH,然后将新程序加载到FLASH中。这种方法有一些缺点,因为擦除整个FLASH会导致程序数据的丢失,并且也需要花费更长的时间。

    需要注意的是,在实现在线编程时,必须确保保护程序的安全。因此,您可能需要在Bootloader或程序的代码中添加安全机制,例如密码验证或CRC校验,以确保只有授权的用户才能进行在线编程。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月19日
  • 已采纳回答 3月11日
  • 创建了问题 2月16日

悬赏问题

  • ¥15 (标签-STM32|关键词-智能小车)
  • ¥20 关于#stm32#的问题,请各位专家解答!
  • ¥15 (标签-python)
  • ¥15 第一个已完成,求第二个做法
  • ¥20 搭建awx,试了很多版本都有错
  • ¥15 java corba的客户端该如何指定使用本地某个固定IP去连接服务端?
  • ¥15 activiti工作流问题,求解答
  • ¥15 有人写过RPA后台管理系统么?
  • ¥15 Bioage计算生物学年龄
  • ¥20 如何将FPGA Alveo U50恢复原来出厂设置哇?