搜索
bottom↓
回复: 24

LGT HIDBoot又更新了,8.2版本

[复制链接]

出0入0汤圆

发表于 2013-2-3 19:30:50 | 显示全部楼层 |阅读模式
本帖最后由 xwkm 于 2013-2-4 14:00 编辑

这是LGT HIDBoot的说明文件
本软件/硬件以GPL授权。
万致远
=================What 's the NEW?=====================
Version:        8.20
1、这个版本比上个版本增加了自动修砖功能。只要程序能够跑到bootloader区(并且bootloader是完整的),那么本程序能够自动修复中断向量表。
以前的程序擦除时若不小心断电容易造成中断向量表损坏。而现在的HIDBoot 增加了备份中断向量表,让断电变砖成为历史。
2、本程序对LGT SOP28(bug版本)的支持更加完善。因为bug版本从外部时钟切换到IRC的时候会引起死机。而且切换方法和量产片也不一样。所以我在bootconfig.h中增加了一个开关。
只要打开它的话在SOP28上就能正常工作(对于SOP28 bug片注意不要随便硬复位,拔掉电源重插才是正确复位方法)。
3、本程序对倍频晶振也提供了支持。类似32M/24M的晶振均可使用,只要在Makefile里F_CPU配置为晶振频率的一半,然后打开bootconfig.h中的CRYSTAL_DOUBLE开关即可。

万致远 2013/2/3 bug report:<http://rgwan.byethost10.com>


顺带说一句,下载的童鞋能不能回个帖?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2013-2-3 19:32:19 | 显示全部楼层
本帖最后由 xwkm 于 2013-2-3 19:35 编辑

bootloader升级对于焊在板子上的芯片请使用仿真器/ISP重写芯片。不过以后的bootloader更新可以直接通过bootloader本身更新自己。
后面会提供bootloader加壳升级软件以及APP和BOOT 的混合软件。

出0入0汤圆

发表于 2013-2-3 21:00:59 | 显示全部楼层
有个疑问: LGT的SOP28封装的都是bug芯片吗,只有ssop24的是正常芯片吗,如果SOP28的不全是bug芯片,那么怎么才能区分bug的和非bug的呢?

出0入0汤圆

发表于 2013-2-3 21:19:22 来自手机 | 显示全部楼层
增加boot自己升级自己容易被破解吧。

出0入0汤圆

 楼主| 发表于 2013-2-3 21:55:16 | 显示全部楼层
csdnct 发表于 2013-2-3 21:00
有个疑问: LGT的SOP28封装的都是bug芯片吗,只有ssop24的是正常芯片吗,如果SOP28的不全是bug芯片,那么怎 ...

应该SOP28不都是bug芯片,看生产日期吧。生产日期比较前的是bug芯片。
区分方法是挂外部晶振

出0入0汤圆

 楼主| 发表于 2013-2-3 21:55:51 | 显示全部楼层
inkfish321 发表于 2013-2-3 21:19
增加boot自己升级自己容易被破解吧。

熔丝锁死芯片以后就读不出来了。反正现在boot区里还有点空间,可以搞个加密算法什么的……

出0入0汤圆

 楼主| 发表于 2013-2-3 21:57:15 | 显示全部楼层
csdnct 发表于 2013-2-3 21:00
有个疑问: LGT的SOP28封装的都是bug芯片吗,只有ssop24的是正常芯片吗,如果SOP28的不全是bug芯片,那么怎 ...


反正bug 芯片只有SOP28的早期版本,没别的。只要不是喜欢把时钟源切来切去,就没问题

出0入0汤圆

发表于 2013-2-3 22:48:10 来自手机 | 显示全部楼层
mark               

出0入0汤圆

发表于 2013-2-4 19:40:57 | 显示全部楼层
一个仿真器才几十元,你的这个比仿真器强在哪里呢

出0入0汤圆

 楼主| 发表于 2013-2-4 20:13:14 | 显示全部楼层
本帖最后由 xwkm 于 2013-2-4 20:17 编辑
csdnct 发表于 2013-2-4 19:40
一个仿真器才几十元,你的这个比仿真器强在哪里呢


远程升级,以及对焊在板子上没有留SWD的芯片的支持。而且几乎是0成本。你看看USBasp也就那么点价格了。为啥我们在程序里还要用Bootloader?就是因为升级方便。不用手忙脚乱找工具。而且如果给客户的话,软件有bug。客户可没有SWD TOOL。就只能自升级了。而且如果用串口写个bootloader最多就用512B的memory空间。也占不了多少。

出0入0汤圆

发表于 2013-2-6 14:42:40 | 显示全部楼层
单片机弄这么长时间了,还没有自己弄过boolload ,学习一下

出0入0汤圆

 楼主| 发表于 2013-2-7 14:03:07 | 显示全部楼层
更新修复稳定性和掉固件的问题(那个是晶振虚焊……)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-2-7 20:28:06 | 显示全部楼层
xwkm 发表于 2013-2-7 14:03
更新修复稳定性和掉固件的问题(那个是晶振虚焊……)

怎么找不到 mixup 和 mupdate  程序

出0入0汤圆

发表于 2013-2-7 20:35:58 | 显示全部楼层
  1. if((!(BOOT_PIN & (1<<BOOT_IO))) || (BOOT_CONTR==0xF0))
  2.         {//升级跳线插上,或者APP区复位到BOOT区
  3.                 Bootloader();
  4.         }
  5.         else
  6.         {//升级跳线未插
  7.                 leaveBootloader();
  8.                 Bootloader();
复制代码
升级跳线未插时,为何还要执行 Bootloader() ?

出0入0汤圆

 楼主| 发表于 2013-2-7 21:28:32 | 显示全部楼层
本帖最后由 xwkm 于 2013-2-8 00:15 编辑
my2jia 发表于 2013-2-7 20:35
升级跳线未插时,为何还要执行 Bootloader() ?


如果程序区是空的话。leaveBootloader会返回。所以说为了应对这种状况,就要进bootloader。
如果程序区跳转成功的话,leaveBootloader永不返回,那么Bootloader()就是永远调用不到的

出0入0汤圆

 楼主| 发表于 2013-2-7 21:28:47 | 显示全部楼层
my2jia 发表于 2013-2-7 20:28
怎么找不到 mixup 和 mupdate  程序

因为现在还是坑。不稳定

出0入0汤圆

发表于 2013-2-7 22:20:35 | 显示全部楼层
本帖最后由 my2jia 于 2013-2-7 22:28 编辑
xwkm 发表于 2013-2-7 21:28
如果程序区是空的话。leaveBootloader会返回。所以说为了应对这种状况,就要进bootloader ...


谢谢,还有一个问题?
bootloader程序是放在flash的最末端吗?在MAKEFILE里未看到类似"--section-start"语句,如何确保生成的HEX正确下载到FLASH的指定位置中?

出0入0汤圆

 楼主| 发表于 2013-2-8 00:14:17 | 显示全部楼层
本帖最后由 xwkm 于 2013-2-8 00:17 编辑
my2jia 发表于 2013-2-7 22:20
谢谢,还有一个问题?
bootloader程序是放在flash的最末端吗?在MAKEFILE里未看到类似"--section-start" ...


直接下载就行了。那个定位部分其实是在initdrv.S中。org伪指令把boot区定位到5632开始部分。
那个section-start选项我本来想用,但是后面发现可能还是牵扯到中断的问题。加上我又放了个中断备份,所以就用initdrv.S解决问题。
section-start不能用的原因是,开头RST和INT0的向量必须指向boot区,但是section选项是直接平移了整个程序,这样的话RST和INT0向量就没法来跳转。
最后的做法就是用org伪指令定位BOOT区。因为LGT没有BOOT区设计,只能自己模拟
实际上不用任何改动,生成的HEX文件直接下载就行了。不过你的晶振是 12M的话可能要把加倍晶振那个选项去了。

出0入296汤圆

发表于 2013-2-8 00:39:44 | 显示全部楼层
空间占用多大?给应用程序留了多少空间?

出0入0汤圆

 楼主| 发表于 2013-2-8 13:48:31 | 显示全部楼层
Gorgon_Meducer 发表于 2013-2-8 00:39
空间占用多大?给应用程序留了多少空间?

2560B,APP有5.6K

出0入0汤圆

发表于 2013-2-14 20:17:33 | 显示全部楼层
要是应用也是vusb的我那个改中断向量表的bootloader就不适用了, 楼主这个还是能用的.

出0入0汤圆

 楼主| 发表于 2013-2-15 02:44:40 | 显示全部楼层
本帖最后由 xwkm 于 2013-2-15 02:51 编辑
goodcode 发表于 2013-2-14 20:17
要是应用也是vusb的我那个改中断向量表的bootloader就不适用了, 楼主这个还是能用的. ...


你的那个平移法的LFU也能用,不过应用程序要改动。
我这个的最大好处就是基本不用动应用程序。
等到中断向量可配置的LGT8F88A出来以后的话那么彻底我的Bootloader就会和r10说再见。
当然目前串口版本的Bootloader和r10没任何关系(中断部分)。
最后r10在我的Bootloader设计中就是如果=0xF0的话,并且app跳转到0地址的时候,Bootloader以此判断是应用程序升级请求。
但是这一次r10决定中断的绝对是不得已之举。
另外就是你的VUSB端口设计为啥不可以两个IO口实现呢?我觉得3个IO实现有点浪费。

出0入0汤圆

发表于 2013-2-15 12:59:51 | 显示全部楼层
如果只用一个外部中断我那个是实现不了的, 加上判断部分也要占用寄存器而且会延迟usb的同步部分除非用高时钟例如24m
我看vusb的文档3个io应该是为了兼容, 比如int在一个端口而int所在的端口已经没有多余io.  
你忽略我那3个io的连接就可以了...

出0入0汤圆

 楼主| 发表于 2013-2-15 14:29:08 | 显示全部楼层
本帖最后由 xwkm 于 2013-2-15 14:30 编辑
goodcode 发表于 2013-2-15 12:59
如果只用一个外部中断我那个是实现不了的, 加上判断部分也要占用寄存器而且会延迟usb的同步部分除非用高时 ...


12M也可以。我尝试在INTR里面加入了10个NOP,V-USB通讯一切正常。
因为实际上USB的脉冲宽度有8个机器周期,K是每隔 4Bit一次。INT0延迟30个周期没有任何问题。

出0入0汤圆

 楼主| 发表于 2013-2-16 10:50:45 | 显示全部楼层
inkfish321 发表于 2013-2-3 21:19
增加boot自己升级自己容易被破解吧。

破解这类的。你发布一个AES加过密的不就行了?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-12 06:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表