搜索
bottom↓
回复: 41

分享开源IAP升级生成升级文件的C#上位机

  [复制链接]

出0入10汤圆

发表于 2016-5-12 12:38:57 | 显示全部楼层 |阅读模式
本帖最后由 10xjzheng 于 2016-5-12 12:47 编辑

找不到上位机板块就发到这里了,这里人比较多,刚学C#不久,这也是编写的第一个简单实用的上位机,真的是很简单的一个程序,
高手勿笑,笑也可以,记得给意见,主要留给初学者,简单修改之后可以自定义。
话说跨出了编写软件来解决自己问题的第一步,^_^.
软件界面如下:

我的IAP升级文件是在原来的bin文件前面加上16个字节的附加数据,多个字节为小端模式。
  1. union _FW_INFO
  2. {
  3.         struct _INFO
  4.         {
  5.                 uint16_t ver_num;
  6.                 uint32_t fw_length;
  7.                 uint16_t fw_crc;
  8.                 uint8_t Rev[6];//保持为0xFF
  9.                 uint16_t Head_CRC;
  10.         } INFO;
  11.         uint8_t INFO_BUF[16];
  12. };
复制代码
2个字节的软件版本、4个字节的固件长度、2个字节的固件CRC校验值、6个字节的备用字节(都填充为0xFF)、2个字节前面这14个字节的校验头。

单片机中计算CRC的函数
  1. //CRC计算
  2. /*
  3. *   This implementation uses an initial value of 0, while some implementations
  4. *   of CRC-16-CCIT uses an initial value of 0xFFFF. If you wish to
  5. *   precalculate the CRC before uploading the binary to the bootloader you
  6. *   can use this function. However, keep in mind that the 'v' and 'c' commands
  7. *   computes the crc of the entire flash, so any bytes not used by your
  8. *   application will have the value 0xFF.
  9. */
  10. uint16_t CRC_calc(uint16_t InitCRC,uint8_t *start, uint8_t *end)
  11. {
  12.   uint16_t crc = InitCRC;
  13.   uint8_t  *data;

  14.   for (data = start; data<=end; data++)
  15.   {
  16.     crc  = (crc >> 8) | (crc << 8);
  17.     crc ^= *data;
  18.     crc ^= (crc & 0xff) >> 4;
  19.     crc ^= crc << 12;
  20.     crc ^= (crc & 0xff) << 5;
  21.   }
  22.   return crc;
  23. }
复制代码

附上原工程,用的是VS2010。




本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2016-5-12 12:41:57 | 显示全部楼层
顶lz!谢谢了

出0入0汤圆

发表于 2016-5-12 13:04:23 | 显示全部楼层
为新手造福了!
给你100个赞...

出20入70汤圆

发表于 2016-5-12 13:08:05 | 显示全部楼层
嗯,不错!


出0入0汤圆

发表于 2016-5-12 13:11:07 | 显示全部楼层
谢谢分享!

出0入0汤圆

发表于 2016-5-12 13:13:14 | 显示全部楼层
谢谢分享!!!

出0入0汤圆

发表于 2016-5-12 13:51:06 | 显示全部楼层
向楼主学习。

出0入0汤圆

发表于 2016-5-12 14:42:53 | 显示全部楼层
顶顶,感谢分享

出0入0汤圆

发表于 2016-5-12 14:47:56 | 显示全部楼层
感谢分享,CRC校验函数不错。

出0入0汤圆

发表于 2016-5-12 14:48:16 | 显示全部楼层
mark,上位机升级。

出0入0汤圆

发表于 2016-5-12 15:33:21 | 显示全部楼层
支持一个。收藏

出0入0汤圆

发表于 2016-5-12 16:46:14 | 显示全部楼层
学习学习学习,收藏

出0入0汤圆

发表于 2016-5-12 17:13:51 | 显示全部楼层
不明白,有空好好研究一下

出0入0汤圆

发表于 2016-5-12 23:40:36 | 显示全部楼层
没看到LZ,发了这个贴,我还发了一个请求的贴
http://www.amobbs.com/thread-5650551-1-1.html

出0入0汤圆

发表于 2016-5-13 07:04:58 | 显示全部楼层
这个很不错,学习一下了。

出0入0汤圆

发表于 2016-5-13 11:48:18 | 显示全部楼层
LZ,关于CRC_cal这个函数有个问题要请教一下:
如果我下载一个100kb的bin文件,假如每次是1024字节传输,然后保存到flash上,那么问题来了,你这个校验函数里的*start,*end,那要怎么得指向???因为我这不是一个大数组存放bin的,每次都是
1024写到flash上,所以怎么得确定这2个指针的地址来求crc,不知你能明白我的疑问??

出0入10汤圆

 楼主| 发表于 2016-5-13 11:53:06 | 显示全部楼层
JJKwong 发表于 2016-5-13 11:48
LZ,关于CRC_cal这个函数有个问题要请教一下:
如果我下载一个100kb的bin文件,假如每次是1024字节传输,然 ...

每次1024计算的结果作为下一次的第一个参数

出0入0汤圆

发表于 2016-5-13 12:50:24 | 显示全部楼层
10xjzheng 发表于 2016-5-13 11:53
每次1024计算的结果作为下一次的第一个参数

可以了,谢谢指导

出0入147汤圆

发表于 2016-5-13 17:22:27 来自手机 | 显示全部楼层
这种工具界面没什么用,联建议做成命令行调用的,让编译器编译后自动调用,生成升级文件。

出0入10汤圆

 楼主| 发表于 2016-5-13 19:24:28 | 显示全部楼层
dreampet 发表于 2016-5-13 17:22
这种工具界面没什么用,联建议做成命令行调用的,让编译器编译后自动调用,生成升级文件。 ...

嗯嗯,做成命令行不错喔,省时省力。

出0入0汤圆

发表于 2016-5-13 20:47:00 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2016-5-13 20:51:39 | 显示全部楼层
谢谢楼主,收下了

出0入0汤圆

发表于 2016-5-13 21:56:56 | 显示全部楼层
赞一个

出0入10汤圆

 楼主| 发表于 2016-5-13 21:58:43 | 显示全部楼层
dreampet 发表于 2016-5-13 17:22
这种工具界面没什么用,联建议做成命令行调用的,让编译器编译后自动调用,生成升级文件。 ...

你有做过一些吗?可以拿出来分享吗?

出0入0汤圆

发表于 2016-5-13 22:03:00 | 显示全部楼层
好东西,谢谢了.

出0入0汤圆

发表于 2016-5-13 22:06:27 | 显示全部楼层

嗯,不错!

出0入0汤圆

发表于 2016-5-13 22:13:38 | 显示全部楼层
mark,备用谢谢

出0入10汤圆

 楼主| 发表于 2016-5-13 22:23:27 | 显示全部楼层
dreampet 发表于 2016-5-13 17:22
这种工具界面没什么用,联建议做成命令行调用的,让编译器编译后自动调用,生成升级文件。 ...

用批处理的命令应该可以做。
http://www.bathome.net/thread-39600-1-1.html
后面有其他的应用我可以试试。

出0入0汤圆

发表于 2016-5-14 14:55:05 | 显示全部楼层
C#应用的好资料,谢谢楼主

出0入0汤圆

发表于 2018-9-12 10:12:19 | 显示全部楼层
多谢分享,正准备自己写呢。就看到这个了……

出0入0汤圆

发表于 2019-3-5 22:57:49 | 显示全部楼层
多谢分享,学习了。

出0入0汤圆

发表于 2019-8-31 12:50:10 | 显示全部楼层
好资料,先收藏下...

出0入0汤圆

发表于 2019-9-3 14:23:31 | 显示全部楼层
这是串口升级还是什么?

出0入0汤圆

发表于 2020-1-20 01:20:32 | 显示全部楼层
谢谢 楼主 分享!

出0入0汤圆

发表于 2020-1-20 07:42:51 | 显示全部楼层
mark,
谢谢分享

出0入0汤圆

发表于 2020-1-20 10:28:19 | 显示全部楼层
顶,感谢楼主分享

出0入0汤圆

发表于 2020-1-27 21:45:06 | 显示全部楼层
好资料,谢谢

出0入0汤圆

发表于 2020-7-1 10:56:58 | 显示全部楼层
感谢分享

出0入0汤圆

发表于 2020-7-16 20:17:33 | 显示全部楼层
感谢大佬的分享

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-4-19 13:07

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

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