厉害,试一试 |
hongshi123 发表于 2022-10-27 09:33 新站STCAI 还是从 STC-ISP V6.90T 以上版本的 ISP烧录/辅助开发工具包一体化软件的//资料下载// 专栏 中下载 开源的 C语言代码, 开源的原理图 |
51hei截图20221027102901.jpg (164.21 KB, 下载次数: 112)
yuanyijie 发表于 2021-7-3 09:18 你好 能否请教下怎么做 最近在做51单片机升级 |
我也做过IAP51单片机在线升级功能,大致国过程和你的差不多,但比你的简单 我的项目比较大,需要用到64KROM,所以外置EEPROM,有更新先下载到EEPROM并验证一次 ROM划分两部分APP区(地址从0x0000开始)和UPDATE区,UPDATE只负责把EEPROM中的新APP程序写入单片机APP区,验证升级和程序下载命令等都在APP中,这样就能随时更新下载验证指令了。 UPDATE区程序需要偏置到单片机FLASH末尾处,同时APP区也备份UPDATE程序,用来验证是否正确。需要升级时使用指针函数跳转到UPDATE区,升级完单片机复位即可。 |
have a look |
你好 远程升级那部分有完整的代码吗 能分享下吗 |
yuanyijie 发表于 2021-7-3 09:18 你好!我正在自学做一个51单片机用1K xmodem升级的项目,请问可以请教源码吗?谢谢! |
请问怎么read和write单片机flash |
yuanyijie 发表于 2021-7-3 09:18 有道理,受教了 |
yuanyijie 发表于 2021-7-3 09:13 有道理 |
INTERRUPT_OFFSET EQU 0X0600 ;中断偏移量 CSEG AT 0X0000;绝对地址 ?C_STARTUP: LJMP STARTUP1 ;中断向量地址 ORG 0X0003;相对地址(偏移地址) LJMP INTERRUPT_OFFSET + $ ;INT0中断 ORG 0X000B LJMP INTERRUPT_OFFSET + $ ;T0中断 ORG 0X0013 LJMP INTERRUPT_OFFSET + $ ;INT1中断 ORG 0X001B LJMP INTERRUPT_OFFSET + $ ;T1中断 ORG 0X0023 LJMP INTERRUPT_OFFSET + $ ;UART1中断 ORG 0X002B LJMP INTERRUPT_OFFSET + $ ;WDT中断 ORG 0X0033 LJMP INTERRUPT_OFFSET + $ ;LVD中断 ORG 0X003B LJMP INTERRUPT_OFFSET + $ ;UART2中断 ORG 0X0043 LJMP INTERRUPT_OFFSET + $ ;SPI中断 ORG 0X004B LJMP INTERRUPT_OFFSET + $ ;IIC中断 ORG 0X0053 LJMP INTERRUPT_OFFSET + $ ;T3中断 ORG 0X005B LJMP INTERRUPT_OFFSET + $ ;T4中断 ORG 0X0063 LJMP INTERRUPT_OFFSET + $ ;PWM中断 ORG 0X006B LJMP INTERRUPT_OFFSET + $ ;T5中断 ORG 0X0073 LJMP INTERRUPT_OFFSET + $ ;CTK中断 ORG 0X007B LJMP INTERRUPT_OFFSET + $ ;ADC中断 ORG 0X0083 LJMP INTERRUPT_OFFSET + $ ;INT2-INT7中断 ORG 0X008B LJMP INTERRUPT_OFFSET + $ ;INT8-17中断 ORG 0X0093 LJMP INTERRUPT_OFFSET + $ ;P2INT中断 RSEG ?C_C51STARTUP;自动分配地址 ;CSEG AT 0X0700;指定APP起始地址 我做的是把BOOTLOAD程序放在0X0000-0X0600处的,使用XMODEM协议进行下载 |
boboxuexi 发表于 2021-7-1 09:10 从APP2拷贝数据到APP1的时候,刚好擦除了扇区0而还没写入时,突然掉电了,怎么能跳转到BOOTLOAD(0X6000)程序呢位置呢? |
yuanyijie 发表于 2021-6-30 10:21 什么风险呢? |
存在风险哦 |
楼上试,代码不全嘛,我没有51单片机,有的话我也来试了 |
C51 代码不全, 无法实现楼主 说的 功能, 不信 , 你们 试一试 , 楼主 ,也就是 一个 方向 , 方案, 想专研的人 可以考虑 安装这个思路去实现, 但是不一定会成功, 说了 这只是方案! |
高手啊,启动跳转改.A51好像可以跳吧 |
高手,这是高手 |
hei51com 发表于 2020-5-12 23:07 多谢夸奖 |
51也能串口升级,会玩 |
![]() |
楼主真的很用心呀 |
百度 “51 OTA”,竟然发现有被复制到别人的论坛。 |
正好需要!!! |
这个有意思![]() |
chinayanhui 发表于 2020-2-23 13:38 51系列有很多品牌,具体要看规格书 |
一直有一个疑问想问一下楼主 就是51单片机在运行的过程中可以读写程序区的flash吗? |
xyz_123 发表于 2020-2-22 10:29 Small:变量存储在内部ram里; Large:变量存储在外部Ram里,使用16位间接寻址;所以程序大我们一般选 large app1可以放置再0x100,这个地址避开中断向量就可以,个人愚见。 |
编译bootload时, Memory Model选Large: variables in XDATA有何讲究,用Small可以吗? 不勾选Use On-chip ROM有何讲究? 编译App1时, App1的起点放在0x1000有何讲究?可以放在其它处,例如0x100吗? |
过奖了 |
不错,会玩! |