时讯:减少嵌入式软件调试时间的三个技巧
我们在开发阶段可能会花费大量时间调试嵌入式软件代码。 有时调试时间是不可避免的; 但在许多情况下,开发人员可能会花费超出预期更多的时间。 我们已经探索了几个您可以进一步调查的领域,以减少您和您的团队花费在调试上的时间。
工程师喜欢解决问题。当然,这就是我们的工作。但不如人愿的是,嵌入式软件工程师最大的问题之一是我们自己制造了很多问题,然后花大量的时间来解决这些问题,最后使自己成为英雄(在调试上!)。有很多公司的嵌入式软件工程师把20 – 40%的时间花在调试上。值得庆幸的是,从团队的角度可以做出很多潜在的改变,以减少他们花在调试上的时间,并将时间百分比压缩到个位数。在本文中,我们将研究一些减少调试时间的技巧。
(资料图)
技巧1-测试驱动开发(TDD)
测试驱动开发是一种允许开发人员增量地构建他们的产品软件,并依赖测试来规定他们编写代码的技术。例如,开发人员首先编写一个测试用例,如果测试失败,则编写以通过测试为目的新代码。然后重复这个过程。
传统上来讲,嵌入式软件开发人员会在测试之前编写整个软件代码模块。可能会在几周内编写数千行代码。当到了测试代码的时候,如果发现它不起作用,问题在哪里?只有天知道!开发人员必须煞费苦心地回顾代码并发现问题所在并修复它。执行此操作所需的时间可能相当长。
另一方面,对于使用TDD的开发人员来说,如果出现了错误并且在代码中注入了bug,测试用例将立即告诉开发人员!由于是逐步编写代码的流程,所以更有可能确切地知道更改了程序的什么部分,并且能够立即修复问题。TDD似乎需要更多的时间来验证,但通过创建一系列的测试用例,可以在回归测试中运行这些用例,以确保一切都按照预期工作。TDD功能实现了一石二鸟的目的:减少调试和自动化测试的时间。
技巧2-尽可能无机器依赖的开发
当一个项目开始时,几乎每个嵌入式软件开发人员的第一反应就是获得一块开发板然后开始编写代码。但不如人愿的是,在许多情况下嵌入式软件代码并不是和对手之间产品的差异化因素,差别在于应用程序代码。虽然许多应用程序代码最终需要与硬件交互,但许多模块可以不依赖于主机器环境来进行开发。
实施无机器依赖的代码开发,为开发人员提供了许多减少每个调试周期所花费时间的机会。例如,通常要为目标微控制器编写和测试代码,开发人员必须做以下工作:
1.交叉编译代码
2.启动调试会话
3.通过 SWD 对设备进行编程
4.在目标机器上运行代码
5.通过在目标机上运行来验证代码是否有效(同样的必须拥有所有Low-Level代码)
如果代码是在主机上开发的,开发人员必须在主机上编译代码,然后使用单元测试工具、仿真器或自定义程序来运行正在开发的代码。如果发现问题,会更加快速的修复、重新编译并重新开始测试。
在嵌入式板子上,仅对目标程序进行编程就会使每个周期增加几十秒,更不用说单步执行代码了。
无机器依赖的开发/调试可能会产生特定的错误。从我现在写了大约75% 的相关代码的例子上来看,发现会有速度更快、效率更高的效果。我可以快速定位代码中的问题,确定原因并修复它,然后继续调试,而不是只能在嵌入式板子上跟踪问题。当然,有些问题会出现在主机上不会出现的板子环境上。
技巧3-掌握调试策略
我们已知效率最低的调试方法就是单步调试代码。但不要误会我的意思,有具体的程序运行时间和发生位置,往往更加会造成很多时间上的浪费。不幸的是,嵌入式软件开发人员通常默认使用断点和单步调试的方案。为了更好地调试,开发人员还需要掌握现代微控制器上可用的其他调试策略。
目前至少有八种不同的调试技术可供开发人员使用。这些技术从最简单到最复杂的顺序排列如下:
Watch / Expressions:为开发人员提供检查CPU 和外设寄存器的能力。它们通常可用于监视变量、执行计算或在更改时停止 CPU。断点:为开发人员提供在特定代码行上停止CPU 执行的能力,高级断点功能可用于设置条件语句的情况。打印:为开发人员提供将字符数据打印到映射的串行接口的能力,有一定概率会影响实时性能。断言:用于验证程序中特定点假设的条件语句。断言失败通常会停止 CPU 并提供失败断言的文件和行位置。统计分析:对在运行中应用程序中的各种寄存器进行定期采样。通常不会影响实时性能。例如,您可能想要对程序计数器(PC) 进行采样以了解正在执行的代码模块。数据分析:对包含可变数据的各种内存位置进行定期采样。当与实时可视化工具一起使用来监控系统状态、感兴趣的变量变化等时,数据分析会非常有用。任务和数据跟踪:使开发人员能够跟踪实时操作系统应用程序中的事件。因此,开发人员可以深入了解应用程序性能、任务延迟、运行时间等等。指令跟踪:使开发人员能够记录在处理器上执行的每条指令。这可用于了解测试期间的代码覆盖率、调试编译器问题等。掌握所有这些技术并知道何时使用它们,可以大大减少当异常发生进入系统时用于调试的时间。
结论
我们在开发阶段可能会花费大量时间调试嵌入式软件代码。有时调试时间是不可避免的;但在许多情况下,开发人员可能会花费超出预期更多的时间。我们已经探索了几个您可以进一步调查的领域,以减少您和您的团队花费在调试上的时间。如果您在调试上花费超过整体软件周期的20%时间,那么请在本周花一个小时时间确定您在以上哪些方面可以立即调整优化,以控制花在调试上的时间。
标签:
推荐文章
- 时讯:减少嵌入式软件调试时间的三个技巧
- 砂与海之歌4
- 全球资讯:b站悄悄关注在哪里_b站悄悄关注什么意思
- 关注:中闽能源(600163):5月5日北向资金减持12.91万股
- 能率燃气热水器使用说明_这些步骤都要注意_全球快播
- 赋形剂对分析方法的影响_赋形剂-环球快资讯
- 煜邦电力2022年年度每10股转4股派1.35元 股权登记日为5月11日
- 山西晋城警方破获26年前致一死一重伤抢劫杀人案
- 4天两轮涨价!特斯拉又“搞事情”? 焦点讯息
- 当前信息:真·倩里一线牵,看玩家们从三界玩到祖国大江南北!
- 云南全省收榨糖厂47家 全省共产糖200.03万吨|焦点滚动
- 长三角实践之上海黄浦:老城区的“新花头” 世界新动态
- 全球观点:官方攻略来了!文旅部推出10条长江主题国家级旅游线路
- 短讯!首周近35万投票!2023年度广东绿色金融改革创新案例征集活动投票火热进行中
- 2023年5月6好运生肖排名榜。_世界微速讯
- 中央气象台5月5日10时继续发布暴雨蓝色预警: 最新快讯
- 长三角铁路“五一”小长假运输收官 发送旅客超2660万人次 全球聚焦
- 英国Vertical将VX4认证推迟到2026年_全球今日讯
- 山东黄瓜:一键拼购,领“鲜”到家
- 环球讯息:劳动最光荣儿歌歌词_劳动最光荣歌曲简介
- 岑巩县凯本镇:干群合力 “提靓”村寨“颜值”
- 世界观点:一张单子卖10万元 谁在交易长江砂石"身份证"?
- 亚运会集训大名单公布!吧友们觉得是否合理?谁缺席让你感到失望-焦点观察
- 微光星海
- 科锐国际:截止2023年04月20日公司股东人数为6,916户|焦点报道
- 2023年“五一”餐饮营收上涨149% 最火爆的单店在商圈-天天快资讯
- 诗歌 | 陈臻:我眼中的你(外五首)
- 千亿私募基金经理“心水股”曝光:贵州茅台、海康威视、紫金矿业等,侨源股份的“私募粉丝”最多-环球聚焦
- 天佑德酒:5月4日融资买入582.88万元,融资融券余额3.5亿元
- 《拂晓》五月重大更新 挑战『噩梦的盛宴』 环球讯息
- 违反有关规定占用公物归个人所有_上的影响 违反有关规定占用公物归个人使用 时间超过多长
- 滨州市城区首批公园绿地开放共享共8处
- 天天观天下!东莞一商铺发生火情,当地通报:火灾已扑灭,无人员伤亡
- 全球简讯:生育面面观|低生育率背后,寻求辅助生殖的人年龄也在推迟
- 全球报道:稳步扩大住房公积金制度覆盖面
- 请问猕猴桃的哪一个品种比较好种植(请问猕猴桃的哪一个品种比较好)
- 购买公益性服务护航农业发展 张家港经验已在全省推广 每日热点
- 本溪县大石湖、老边沟风景区游客同比增长70%
- 粤东西北地区争取5年引进投资超2万亿元
- 天天实时:安徽省池州市2023-05-05 01:52发布暴雨黄色预警
- 环球速讯:波莱罗舞曲最好听的版本_波莱罗舞曲
- pubmed数据库-pubmed数据库入口
- 李建华追悼会众星现身!蔡明哭成泪人被人搀扶,姜昆神情悲伤
- 天天热消息:名单发布 荆州斩获2项大奖
- 科学家们发现了时差造成有害健康后果的源头
- 注册工商营业执照需要什么手续 天天播资讯
- 当前视讯!中方信富:美联储加息落地!内资主力又出击了,10亿爆买这几个方向
- 园城黄金:控股股东、实际控制人徐诚东正在筹划可能导致公司控制权发生变更的重大事项-焦点简讯
- 今晚播出!《奔跑的青春——2023五四青年节特别节目》传递闪闪发光的青春力量
- 专家分析:美联储难以打消全球市场对美金融风险担忧-热消息
- 江苏昆山房价怎样 江苏昆山房价
- 杭叉集团耗资1.05亿元累计回购512.1万股_焦点速读
- 外交部:南海是地区国家共同的家园 不应当成为域外势力的狩猎场
- 曝梅西去沙特,每年赚7亿欧!巴萨喉舌:球王第3选择,是美职联
X 关闭
最新资讯
- 硅谷大佬,想要长生不老
- 拒不支付工人工资,包工头一审获刑一年-环球新要闻
- 青年节这天,北京大兴推出原创舞台剧《致兴潮青年》|环球快看点
- 格林美2022年营收294亿 动力电池回收增长超3倍|每日视点
- 赴淄赶“烤”热度狂飙!特色金融“添火加薪”盘活金土地
- 世界今热点:中国田径队老对手死于家中,年仅32岁,曾获奥运会、世锦赛冠军
- 小米投资车载声学厂商追锋汽车 持股12.5%
- 全球今日讯!“数字”解锁福州古厝新玩法
- 金海通(603061)盘中异动 股价振幅达6.51% 跌7.04% 报126.27元(05-04)-环球即时
- 怎么查询学历证书编号_学历认证报告编号在哪
- 每日关注!男子在西湖捞手机日入约一万 这钱收的很合理吗?
- 天天新动态:网赌报警有用吗钱能退吗
- 比亚迪宋PLUS当道 新长安CS75 PLUS恐难续辉煌
- 黄华修:创新引领农业养殖科技 团结奋斗开新局 喜迎工会十八大
- 安徽持续用力筑牢产业“四梁八柱”-全球快资讯
- 湘邮科技董秘回复: 公司将持续致力于邮政信息化领域建设,为客户创造价值,力争以良好的经营业绩回报广大投资者
- “透视装”与女性主义:暴露并不等于脆弱,而是力量
- 基金一季报透露新动向 仓位提升集中度下降|天天消息
- “插队母女”被曝已抑郁,准备起诉网友_今日最新
- 好莱坞编剧罢工,“奈飞们”不买账-当前热议
- 键盘失灵一键修复_键盘有几个键失灵怎么办 今日关注
- 美国至4月28日当周EIA原油库存减少128万桶,前值减少505.4万桶_世界热讯
- 一口气吹奏《百鸟朝凤》40秒!中国首位唢呐女博士带来的高能时刻……|环球信息
- 天天短讯!今夜,郑州大雨,局部暴雨
- 我国首个!正在建设! “出场即发射”将成为可能
- 2023年5月3日四氯化钛价格最新行情预测
- C4D中如何断开分段(c4d使用边断开)_天天快播报
- 孟景伟郑皓调研检查“五一”假期安全服务保障工作
- 当前热讯:3500x鲁大师跑分才一万多_3500x鲁大师跑分
- 23Q1业绩亮眼,竞争力进一步增强
- 职务侵占罪最高判几年徒刑
- 今日报丨武当太极桩_关于武当太极桩简述
- 假期出行,别小看“水土不服”!可能是感染了病原体_要闻
- 推动露营旅游休闲实现健康有序发展
- 华硕博文系列笔记本让你的工作更智能-世界视讯
- AI研究社区热议 通用人工智能时代或将到来
- 存货高企、净利润下滑,子不语面临增长乏力困境_焦点速读
- 热资讯!现场 | 一首《遇见》,送别孙博
- 环球关注:孙琪峰
- 荣耀Magic5大降价:5100mAh+骁龙8Gen2,从4499跌至3699元
- 视点!那一刻我半命题600字初中作文_那一刻我半命题作文
- 云南保山发生5.2级地震,官方:出现房屋倒塌,有受困人员被救
- 回环诗有哪些_回环诗
- 歌礼制药-B:ASC40痤疮II期临床试验达到终点 全球聚焦
- 汽车技师的“劳动节”:把时间用在技术研究上
- 世界今热点:近百位美食店主齐聚,这群普陀人共商“舌尖上的安全”→
- 河北对外经贸职业怎么样学院校
- 焦点!初二考多少分才能考上高中 分数很高吗
- 林丹李宗伟入选世界羽联名人堂
- 马可数字科技(1942.HK)大涨超30%,非全资附属与中韩人寿保险达成战略合作-今日热门
X 关闭