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

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 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败
  • ¥15 Centos7 / PETGEM
  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题