硬汉嵌入式论坛

 找回密码
 立即注册
查看: 653|回复: 14
收起左侧

[其它] 单片机软件如何才能规范化?

  [复制链接]

39

主题

200

回帖

327

积分

高级会员

积分
327
发表于 2024-4-30 11:59:08 | 显示全部楼层 |阅读模式
下载了ARM的DAPLink工程。
https://github.com/ARMmbed/DAPLink/tree/main

编译了一下,感慨确实和我自己写的程序不一样啊。
Snipaste_2024-04-30_11-47-29.png

它里面Build Output甚至有git的内容..
它里面编译前和编译后执行了两个bat脚本,这两个脚本里又调用了python的脚本。
Snipaste_2024-04-30_11-49-01.png
笔者不会python,看不懂里面做了什么。
貌似获取了git的description还有SHA,然后生成到了.h文件里?
总之一脸懵逼看不懂。


然后它的内存划分貌似 也有规划。
Snipaste_2024-04-30_11-52-36.png



虽然看不懂它的工程里做了什么,但是觉得很厉害。
和自己公司里的开发方式一对比:
一边是野蛮的,粗犷的。大部分依赖人工的。
另外一边就是已经工程化的,规范化的。

两相对比之下,徒生惆怅。
不知道何时才能达到这种境界。
回复

使用道具 举报

3

主题

338

回帖

347

积分

高级会员

积分
347
发表于 2024-4-30 12:33:27 | 显示全部楼层
在正常完成开发任务之后,你还能认识到自己不足,寻求进步;这态度就已经超过半数开发者了。何必惆怅呀!
回复

使用道具 举报

3

主题

127

回帖

136

积分

初级会员

积分
136
发表于 2024-4-30 13:46:50 | 显示全部楼层
有时间就多看多写,能意识到自己的代码还有能改进的地方就很不错了,大部分人都是客户要啥才做啥,做完就交差,其余时间也不会学习,干活有不会的地方才开始学。
上面两个脚本,一个是生成版本号的头文件,编译的时候就编译到固件里,到后期就可以从固件里读版本号追溯问题版本。另一个脚本是在编译后的固件里追加CRC校验还有加daplink烧录算法之类的,链接脚本也提前对内存规划出来空间,通过宏定义确定空间大小。用分散加载应该也是可以实现同样的效果,为什么用追加固件的办法我猜是为了方便,这样就不用频繁修改源码,比如算法大小之类的,有懂的也可以来解释一下
回复

使用道具 举报

7

主题

28

回帖

49

积分

初级会员

积分
49
发表于 2024-4-30 19:47:06 | 显示全部楼层
真的秀,刷新认知了
回复

使用道具 举报

1

主题

17

回帖

20

积分

新手上路

积分
20
发表于 2024-5-2 09:01:14 | 显示全部楼层
我们公司现在开发项目,就是这样干的!
回复

使用道具 举报

3

主题

1231

回帖

1240

积分

至尊会员

积分
1240
发表于 2024-5-3 16:47:41 | 显示全部楼层
  有这方面的系统点的教程吗?
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2024-5-3 19:33:09 | 显示全部楼层
请问楼主的Keil工程是怎么生成的,我的下载下来没有
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2024-5-4 11:14:43 | 显示全部楼层
大佬,可以分享一下DAPLink的Keil MDK工程吗,想学习一下。
回复

使用道具 举报

39

主题

200

回帖

327

积分

高级会员

积分
327
 楼主| 发表于 2024-5-5 08:31:46 | 显示全部楼层
本帖最后由 会飞的猪_2020 于 2024-5-5 08:40 编辑
摸鱼校尉 发表于 2024-5-4 11:14
大佬,可以分享一下DAPLink的Keil MDK工程吗,想学习一下。

附件有点大,论坛里不好传。

你从ARMmbed上的github里面下载就行。
根据https://github.com/ARMmbed/DAPLi ... DEVELOPERS-GUIDE.md这篇文档里说的

安装对应的python环境。
运行这个脚本
[C] 纯文本查看 复制代码
tools/launch_uvision.bat
。再运行这个脚本
[C] 纯文本查看 复制代码
build_release.bat





回复

使用道具 举报

39

主题

200

回帖

327

积分

高级会员

积分
327
 楼主| 发表于 2024-5-5 08:38:25 | 显示全部楼层
qqzhaojs 发表于 2024-5-3 19:33
请问楼主的Keil工程是怎么生成的,我的下载下来没有

参考https://github.com/ARMmbed/DAPLi ... DEVELOPERS-GUIDE.md
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2024-5-5 11:16:02 | 显示全部楼层
会飞的猪_2020 发表于 2024-5-5 08:31
附件有点大,论坛里不好传。

你从ARMmbed上的github里面下载就行。

好的,感谢
回复

使用道具 举报

73

主题

1202

回帖

1421

积分

至尊会员

积分
1421
发表于 2024-5-5 16:57:41 | 显示全部楼层
这个真的超级牛逼了
回复

使用道具 举报

0

主题

14

回帖

14

积分

新手上路

积分
14
发表于 昨天 17:05 | 显示全部楼层
这种类似的我倒是做过一个,让IAR 编译完成之后执行一个 BAT 脚本,然后再脚本里面解析头文件,获取到软件版本号等信息,然后将编译出来的 hex 文件按公司要求进行重命名并拷贝到 release 文件夹,同时生成 OTA 升级包
回复

使用道具 举报

0

主题

14

回帖

14

积分

新手上路

积分
14
发表于 昨天 17:05 | 显示全部楼层
这种类似的我倒是做过一个,让IAR 编译完成之后执行一个 BAT 脚本,然后再脚本里面解析头文件,获取到软件版本号等信息,然后将编译出来的 hex 文件按公司要求进行重命名并拷贝到 release 文件夹,同时生成 OTA 升级包
回复

使用道具 举报

0

主题

14

回帖

14

积分

新手上路

积分
14
发表于 昨天 17:07 | 显示全部楼层
这种类似的我倒是做过一个,让IAR 编译完成之后执行一个 BAT 脚本,然后再脚本里面解析头文件,获取到软件版本号等信息,然后将编译出来的 hex 文件按公司要求进行重命名并拷贝到 release 文件夹,同时生成 OTA 升级包
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-16 10:43 , Processed in 0.202079 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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