硬汉嵌入式论坛

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

[MDK] keil占用百分比进度条(Keil5_disp_size_barv 0.4)

  [复制链接]

3

主题

46

回帖

55

积分

初级会员

一个极客ageek

积分
55
发表于 2023-7-10 14:46:03 | 显示全部楼层 |阅读模式
本帖最后由 nikola 于 2023-7-10 15:23 编辑

开源工具,更新到版本V0.4。

版本0.1~0.3贴子传送门:https://www.armbbs.cn/forum.php? ... 19923&extra=&page=1
gitee开源地址包含C语言源码:https://gitee.com/nikolan/keil5_disp_size_bar.git


以进度条百分比来显示keil编译后代码对芯片的内存ram和存储flash的占用情况。

keil5_disp_size_barv0.4 3.png




原理是使用C语言遍历目录找到keil工程生成出的.map文件,然后找到对应的ram和flash的总大和占用大小,
然后以进度条和百分比的直观格式输出来,以便嵌入式软件工程师方便调试,知道芯片占用情况,进行裁剪和优化。
基本能找到编译后生成的map文件就能输出生成的代码对ram和flash的占用大小百分比进度条,只要能找到.map文件。
keil5环境下通用,但是部分早期的芯片可能map文件不同,或者定义的大小和芯片实际不符,找不到定义的大小。




## 版本更新日志

. 更新到v0.4
- 把uint64_t改为uint32_t,因为发现sscanf函数的%x给64位变量赋值时,64位好像会有错误。
- 修复递归查找不彻底导致子目录下的map找不到

- 添加C51支持8051 测试STC89C52和WCH552均测试可以,但是部分工程没有写xram的大小的默认只能以iram大小替代。
还有部分工程是没有在工程定义真正大小的,也就是芯片本身没有keil开发包,用其他芯片或通用开发包定义的工程。
在keil上是没有定义对应芯片型号或用了其他芯片的定义的8051这就会导致显示占用的最大值错误。
要确保工程文件<CPU>里面的IRAM,XRAM,IROM都是正确的才行。
keil5_disp_size_barv0.4.png

- 同时发现部分例如stm32F0系列的工程map文件格式不同,可能早期map不怎么统一规范,给的max都是0xFFFFFFFF,不是实际芯片能用的大小,无法输出进度条,
只能读工程的里芯片定义的max,来替代map文件的max,所以部分自定义的显示不出来,工程文件有些格式也是会不一样有的以逗号分隔有的以-分隔。


Keil5_disp_size_bar_v0.4.exe (52.64 KB, 下载次数: 155)



回复

使用道具 举报

73

主题

1196

回帖

1415

积分

至尊会员

积分
1415
发表于 2023-7-10 15:17:55 | 显示全部楼层
太牛逼了
回复

使用道具 举报

1

主题

132

回帖

135

积分

初级会员

积分
135
发表于 2023-7-10 20:43:08 | 显示全部楼层
感谢分享,厉害了
回复

使用道具 举报

1

主题

132

回帖

135

积分

初级会员

积分
135
发表于 2023-7-10 20:51:22 | 显示全部楼层
大佬,反馈个问题。我用的 8051 貌似统计有些问题,48KB 的 flash, 4KB 的 ram, 以下是编译时输出的结果,请帮忙看下能解决不?

附件有 map 文件。

芯片信息


编译结果


1.png
2.png

TL_WT01_Main.7z

31.07 KB, 下载次数: 3

回复

使用道具 举报

6

主题

639

回帖

657

积分

金牌会员

积分
657
QQ
发表于 2023-7-11 00:01:42 | 显示全部楼层




,计算占用百分比时,max有可能为0,所以需要优化,不然显示有问题;
回复

使用道具 举报

7

主题

25

回帖

46

积分

新手上路

积分
46
发表于 2023-7-11 07:27:29 来自手机 | 显示全部楼层
切换工程,有多个map,计算就不对了,建议增加入参确定选定那个map
回复

使用道具 举报

210

主题

1044

回帖

1684

积分

至尊会员

More we do, more we can do.

积分
1684
发表于 2023-7-11 09:33:10 | 显示全部楼层
实测工程文件查找打印了2次,你的图也是这样。
回复

使用道具 举报

610

主题

3060

回帖

4910

积分

至尊会员

积分
4910
发表于 2023-7-11 11:25:38 | 显示全部楼层

感谢分享,厉害了
回复

使用道具 举报

610

主题

3060

回帖

4910

积分

至尊会员

积分
4910
发表于 2023-7-11 11:36:14 | 显示全部楼层
本帖最后由 hpdell 于 2023-7-11 16:17 编辑

0.4 版本显示效果


keil5-disp-sh.png


不知道对错


补充信息:
我这个是使用 使用 nxp 的, flash 地址是 0x3000 0000 跟 st 的 falsh 地址不同,而且 nxp 的 falsh 是外挂的,

估计得修改 这个工具 的底层才可以,而且还有能够识别 是 nxp 的 mcu还是 st 的mcu ,貌似工作量有些大哟,

望大佬 有空修改一版试试看啊

回复

使用道具 举报

1

主题

66

回帖

69

积分

初级会员

积分
69
发表于 2023-7-11 12:02:33 | 显示全部楼层
本帖最后由 JIAYU 于 2023-7-11 16:38 编辑


1111111111111111.jpg
反馈一个BUG(如果是),总大小显示好像有点不对。我也不知MAP文件是不是看这里的
我是用分散加载实现分段的
回复

使用道具 举报

210

主题

1044

回帖

1684

积分

至尊会员

More we do, more we can do.

积分
1684
发表于 2023-7-11 14:30:49 | 显示全部楼层

在ARM找到工具库,正在琢磨怎么用起来:
截图_2023-07-11_14-29-29.png
回复

使用道具 举报

210

主题

1044

回帖

1684

积分

至尊会员

More we do, more we can do.

积分
1684
发表于 2023-7-11 14:35:58 | 显示全部楼层
里面的接口比较全面:
class _GccParser(_Parser):
class _ArmccParser(_Parser):
class _IarParser(_Parser):
回复

使用道具 举报

6

主题

639

回帖

657

积分

金牌会员

积分
657
QQ
发表于 2023-7-11 19:09:53 | 显示全部楼层
hpdell 发表于 2023-7-11 11:36
0.4 版本显示效果

你这个感觉需要优化下对齐显示效果
Keil5_disp_size_bar.exe (66.83 KB, 下载次数: 6)


试试这个优化后的显示效果怎么样

回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2023-7-12 08:44:17 | 显示全部楼层
很奇怪,在keil中找不到map,但是在CMD中直接运行右可以找到
无标题.png
回复

使用道具 举报

3

主题

35

回帖

44

积分

新手上路

积分
44
发表于 2023-7-12 09:13:45 | 显示全部楼层
很棒的思路和工具,谢谢分享
回复

使用道具 举报

2

主题

13

回帖

19

积分

新手上路

积分
19
发表于 2023-7-12 09:37:04 | 显示全部楼层
路径可以修改吗,我是生成要OBJ里面,跟工程不是放同一个目录
回复

使用道具 举报

2

主题

13

回帖

19

积分

新手上路

积分
19
发表于 2023-7-12 09:42:57 | 显示全部楼层
我的情况跟14楼一样,工程 跟MAP在同级的两个文件夹里不可以,但是直接运行可以
回复

使用道具 举报

0

主题

66

回帖

66

积分

初级会员

积分
66
发表于 2023-7-13 09:28:13 | 显示全部楼层
感谢分享,厉害了
回复

使用道具 举报

3

主题

1225

回帖

1234

积分

至尊会员

积分
1234
发表于 2023-7-13 14:01:10 | 显示全部楼层
yklstudent 发表于 2023-7-11 19:09
你这个感觉需要优化下对齐显示效果

这又是一个新版本 ?
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2023-7-24 13:33:21 | 显示全部楼层
刚刚下载了,但我是GD芯片。它的.map文件中信息都存在。但是我的keil5中只显示了RAM,FALSH是错误的。获得的FLASH总大小是0,然后实际大小是正确的。这样的百分比就异常了,考虑兼容国产芯片么?
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2023-7-24 13:34:06 | 显示全部楼层
公司内网,gittree源码没法下载。考虑放这一份么?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-10 01:49 , Processed in 0.364103 second(s), 33 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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