编程经验分享
文章平均质量分 68
bug菌嵌入式系统开发实战经验总结
最后一个bug
我是bug菌,一名嵌入式软硬件技术爱好者,我来csdn了~
展开
-
SVN的branch分支合并完要不要删除
历史记录和追溯:保留分支可以帮助团队回顾过去的工作,了解该分支的开发历史和变更记录。后续开发:有时候可能需要在已合并的分支上进行进一步的开发或修复,保留分支可以方便团队在需要时重新基于该分支进行开发。不过,如果确定某个分支完全不再需要,并且不会对未来的开发造成混淆或困扰,那么可以考虑删除该分支以保持版本库的整洁性。在删除分支之前,确保团队成员都已知悉并同意删除操作,并建议在删除前备份分支内容以防止误删。备份和恢复:保留分支作为备份可以在需要时恢复该分支的内容,以防止意外删除或丢失重要代码。原创 2024-03-24 22:09:26 · 417 阅读 · 0 评论 -
用MFC打开外部程序
需要注意的是,上述代码适用于Windows操作系统,并且基于MFC框架。在其他操作系统或不使用MFC的情况下,可能需要使用不同的方法或API来打开外部程序并加载文件。函数是Windows API的一部分,它可以执行与操作系统相关的操作,例如打开文件、运行程序等。函数,并传入要打开的文件路径作为参数。函数来打开Notepad并加载指定的文件。函数来打开Notepad并加载指定的文件。函数的第一个参数是一个窗口句柄,我们传入。第四个参数是要打开的文件路径,我们传入。,表示要打开的文件路径。原创 2023-08-26 11:48:22 · 1931 阅读 · 0 评论 -
二 手 代 码~
正文大家周末好,我是bug菌~最近工作上有些小插曲,忙得不可开交,好不容易休闲片刻,那今天就聊聊一个话题--“二手代码”。二手电器,手机,汽车等等大家应该再熟悉不过了。可能很多朋友会把二手近似于“比较糟糕,没人要的东西。”这样的定义多少偏颇了点,毕竟二手市场的宝藏也是非常丰富的,经济实惠、性价比高也是目前二手产品的代名词。我们所写代码也是一样的,也有一手和二手之分,一手代码不用多说,自己独立编码输...原创 2023-03-25 21:01:17 · 551 阅读 · 0 评论 -
用C语言进行面向对象编程
在这个例子中,我们使用结构体表示矩形对象,并定义了两个函数指针,分别指向获取面积和周长的函数。多态:C语言中可以使用函数指针和结构体的嵌套来实现多态,即一个函数指针可以指向不同的函数,实现相同的接口,但实现不同的功能。相应的,结构体中的成员也可以有不同的实现。结构体:在C语言中,结构体可以用来表示一个对象的属性和状态,相当于一个类的实例变量。继承:C语言中可以通过结构体的嵌套来实现继承,即一个结构体可以包含另一个结构体作为其成员。函数指针:C语言中可以使用函数指针来实现类的方法,相当于一个类的成员函数。原创 2023-03-29 23:20:44 · 652 阅读 · 0 评论 -
可移植操作系统接口--POSIX
什么是POSIXPOSIX(Portable Operating System Interface,可移植操作系统接口)是一个标准,它定义了操作系统接口的一系列规范。POSIX标准最初由IEEE制定,现在由Open Group维护。POSIX标准的主要目的是为了保证不同操作系统之间的兼容性,使得开发者能够编写可移植的应用程序,而不必担心不同操作系统之间的差异。POSIX标准定义了许多系统调用、库函数和命令行工具,这些都是操作系统提供给应用程序的接口。POSIX标准包括许多部分,如POSIX.1、POS原创 2023-03-08 20:56:59 · 1381 阅读 · 0 评论 -
驱动分离与分层思想与实现
驱动分离与分层驱动的分层与分离思想是指将软件系统中的不同功能模块分层和分离,以实现更好的可维护性、可扩展性和可重用性。在这种思想下,系统的不同功能模块被分为不同的层次,每个层次都有其特定的职责和功能,且层与层之间的接口是相互独立的。这种分层和分离的思想可以使得系统更容易维护和修改,也可以使得系统更容易扩展和重用。具体怎么实施驱动的分层与分离思想可以通过以下几个步骤来实施:划分层次:根据驱动程序的功能和职责,将其划分为不同的层次。例如,可以将驱动程序分为硬件抽象层、设备驱动层和应用程序接口层等。原创 2023-03-08 20:33:02 · 411 阅读 · 0 评论 -
分享10个不错的C语言开源项目
今天跟大家分享10个重量级的C语言开源项目,C语言确实经得住考验:Redis:Redis是一个开源的高性能的键值对数据库。它以C语言编写,具有极高的性能和可靠性。Nginx:Nginx是一个高性能的HTTP和反向代理服务器,以C语言编写。它被广泛用于大型网站和应用程序的负载均衡和缓存。VLC:VLC是一个跨平台的媒体播放器和流媒体服务器,以C语言编写。它支持几乎所有的音频和视频格式,并且具有很多高级功能。FFmpeg:FFmpeg是一个跨平台的音视频处理库,以C语言编写。它支持几乎所原创 2023-03-07 12:39:15 · 6353 阅读 · 0 评论 -
立马返回公司,住集体宿舍???
正文大家好,我是bug菌~晚上7~8点的时候,深圳卫健委公众号发布了标题为:"深圳:全市公交地铁停运!开展第三轮全体核酸检测"的文章。当时刚好准备去超市买点明天的早点,顺便带点水果,然而超...原创 2022-03-13 23:18:08 · 152 阅读 · 0 评论 -
调试上位机也要好好管管~
正文大家好,我是bug菌~最近工作上都无法用一个"忙"字来形容了,周天还在因工作上的一些事情加班,毕竟工作还是要放在首位,分享只能看成一种爱好。本篇文章主要是跟大家聊聊一个成熟项目中调试上...原创 2022-02-28 21:52:07 · 570 阅读 · 0 评论 -
头皮发麻,这函数参数太多了~
正文大家好,我是bug菌~过完正月十五就真的开启新的一年了,年初工作上挺忙碌的,各种开会和各种项目计划,忙着树立各种flag。或许早已习惯了,计划基本都赶不上变化,"梦想很丰满,现实很骨感...原创 2022-02-17 12:01:00 · 793 阅读 · 1 评论 -
入司四周年
正文大家好,我是bug菌~早上闹钟响起,看了看手机,企业微信发来一则消息,"入职周年庆",猛然意识到已经在这家公司待了4年了,不禁心里暗自感叹:"一眨眼,四年了,时间过得真快呀~"四年说长,很多人以十年为期;说短,四年却足以给你一段宝贵的大学时光。bug菌工作足足7年了,算是一位职业老人了,在这家公司待的时间当然是最长的,同时这四年也是我职业生涯中,不管是技术、能力、待遇...原创 2022-07-05 22:35:01 · 226 阅读 · 0 评论 -
面试一位喜欢用"精通xx"的嵌入式工程师
正文大家周末好,我是bug菌~上周bug菌发了一条说说,"10多年工作经验的工程师我都不敢面,一打开简历就看到这么耀眼的字眼。"后来很多朋友问我,面得怎么样了?下面简单分享一二:没错,当HR把简历拿给我,"精通"二字映入眼帘,莫名的感觉这份简历有一种无形的压迫感,能在简历上写出这两个字的,一类是刚干入行用词不当,一类就是所谓的“真大牛”了,因为一般的大牛都很低调,只会越来...原创 2022-07-31 22:40:24 · 200 阅读 · 0 评论 -
git常用命令汇总
Git 是一种分布式版本控制系统,它具有以下优点:分布式:每个开发者都可以拥有自己的本地代码仓库,不需要连接到中央服务器,这样可以避免单点故障和网络延迟等问题。非线性开发:Git 可以支持多个分支并行开发,而且可以轻松地合并分支,这样可以让团队成员在不影响主干的情况下开发自己的功能。高效性:Git 可以快速地进行代码的提交、拉取和合并,而且在处理大型项目时也非常稳定和高效。4. 可扩展性:Git 具有丰富的插件和扩展,可以满足不同开发团队的需求。常用的一个git命令整理:git原创 2023-03-06 10:40:43 · 525 阅读 · 0 评论 -
一套常用的软件版本命名规则
软件版本命名规则由三个部分组成:主版本号、次版本号和修订版本号。其中,主版本号和次版本号用于指示软件的重大功能和特性的更改,修订版本号则用于指示小的错误修复和改进。详细软件版本命名规则应该包括以下几个方面:主版本号:主版本号用于指示软件的重大功能和特性的更改。当进行重大功能和特性更改时,增加主版本号。通常情况下,主版本号只有在软件进行了重大的改进或者重构时才会增加,比如从1.x版本升级到2.x版本。次版本号:次版本号用于指示软件的小的功能改进和特性的增加。当进行小的改进时,增加次版本号。比如原创 2023-03-06 09:10:05 · 2564 阅读 · 0 评论 -
嵌入式linux必备内存泄露检测神器
Valgrind介绍Valgrind是一个可移植的动态二进制分析工具集,主要用于发现程序中的内存泄漏、不合法内存访问、使用未初始化的内存、不正确的内存释放以及性能问题等,可在Linux和Mac OS X等平台上使用。Valgrind由多个工具组成,其中最常用的工具是Memcheck。Memcheck是一种内存错误检查工具,它通过在程序执行时在内存中插入代码来捕获内存相关错误。此外,Valgrind还包括Cachegrind(性能分析工具),Callgrind(函数调用跟踪工具),Massif(堆分配分析原创 2023-03-04 20:27:11 · 1672 阅读 · 0 评论 -
linux驱动开发为单片机编程带来的一些指导
Linux驱动框架程序为单片机编程带来了以下好的设计思想,这里总结记录下:1.模块化设计:Linux驱动框架程序采用模块化设计,将不同的功能分离出来并分别实现,这样可以方便地维护和修改;2.面向对象的设计:Linux驱动框架程序采用面向对象的设计思想,使用C语言实现了面向对象的特性,如封装、继承和多态等,提高了代码的复用性和可维护性;3.统一的接口和数据结构:Linux驱动框架程序定义了统一的接口和数据结构,使得驱动程序可以更加方便地与内核交互,减少了编程的工作量;4.高度可配置性:Linux驱动框原创 2023-03-04 21:36:39 · 343 阅读 · 0 评论 -
【文章大合集】年轻人所渴望的“力量”(定期更新)
1、关于"最后一个bug"当大家看到这个公众号名字的时候一定会想问作者为什么起这样一个名字,还记得之前许多小伙伴们说 : "最后一个bug"修护了...原创 2020-06-14 20:30:00 · 430 阅读 · 0 评论 -
【程序人生】学不到东西,不想呆在这家公司了!
1、聊一聊 找一份工作和找一个女朋友其实是一样的道理,一切都是缘分,如果磨合不来,那就分开吧! 本文主要分享跟一位小伙伴学习和生活上的交流。或许很多小伙伴也有着类...原创 2020-11-06 06:00:00 · 466 阅读 · 1 评论 -
【原创bug】如何看出应聘公司研发实力?
今天工作完,喝口茶放松放松,翻了翻bug技术交流群,一个伙计的提问吸引到了我,于是便在群里发表了一下自己的一些观点。 他问道:如何能看出一个公司的研发实力 ? 我调侃的回答...原创 2020-12-15 08:00:00 · 646 阅读 · 0 评论 -
【bug说】2021 这篇" 求职攻略 "不看可惜了!
前 言2021年第一更,首先祝各位读者朋友在新的一年里"牛气冲天"、"牛转钱坤"、人人成为各行各业的"牛人"!最近有很多读者朋友向我咨询...原创 2021-01-03 21:50:23 · 233 阅读 · 0 评论 -
C语言实现面向接口编程
正文大家好,我是bug菌!今天更新的文章,我相信是大伙喜欢的,来聊聊面向接口编程。不是一直都吹嘘着面向对象编程吗?怎么今天又来一个面向接口编程,很多人要说我不讲武德了。1面向接口是啥?不用...原创 2021-05-07 12:03:02 · 1892 阅读 · 1 评论 -
"最后一个bug"技术交流②群,结实各路技术大牛
正文大家好,我是bug菌。很高兴大家能持续关注公众号:“最后一个bug”,也有幸认识了许多有趣的朋友。距离组建交流①群有接近1年的时间了,迟迟没有组建二群其实原因挺多的,主要bug菌个人精...原创 2021-05-09 12:14:47 · 264 阅读 · 0 评论 -
谁不是从技术小白走过来的呢?
正文大家好,我是bug菌!很多朋友经常问我,做嵌入式开发很久了,而到了实际的项目中还是感觉力不从心,写出来的代码也什么艺术感,怎么办?有什么好的方法能够突破这道槛,然后快速提升吗?这位朋友...原创 2021-06-10 08:03:00 · 187 阅读 · 1 评论 -
为何大家都" 喜欢 "晚上敲代码?
正文大家好,我是bug菌~最近加班有点猛,主要是客户订单比较多,需求也多,各种需求和技术指标的评估那是相当的耗时间。有时候带电脑回家敲上一会时间也是必不可少的,但发现每天回家敲代码的一小会...原创 2021-11-22 23:04:26 · 911 阅读 · 0 评论 -
嵌入式软件设计上的经验与感悟
正文大家好,我是bug菌!今天回到了深圳,开始了今年最后4个月的工作,一年的时间真的过得挺快的,2021年又只剩下三分之一了,在返程途中思考了很多,有对未来的憧憬,也有担忧~或许人生也跟代...原创 2021-10-11 12:01:00 · 580 阅读 · 0 评论 -
分享一些bug菌读过的开源框架与代码~
正文大家好,我是bug菌!今天主要是收集并精选了一些自己所了解和学习过的优秀的嵌入式开源框架代码和项目,不太了解的就不推荐给大家了,因为开源的东西实在是太多了,鱼龙混杂,所以取其精华去其糟...原创 2021-07-22 12:01:00 · 447 阅读 · 0 评论 -
嵌入式软件调试偶发性问题技巧
正文大家好,我是bug菌!经常有朋友问我该如何调试程序的偶发性问题?大家所谓的偶发性问题就是很难复现、较难定位的问题,比如在家里验证了N遍,固件一发布到客户现场就各种宕机;现场刚调试得明明...原创 2021-08-10 12:01:00 · 751 阅读 · 0 评论 -
多考虑代码的可移植性和可复用性
正文大家好,我是bug菌~最近几天在完成一个项目的EVT收尾工作,EVT这个名词可能有些朋友不是很熟悉,EVT(Engineering Verification Test)表示进行工程验证...原创 2021-11-09 21:40:00 · 829 阅读 · 0 评论 -
从SourceInsight摸索到VSCode网页版
正文大家好,我是bug菌~一名优秀的嵌入式软件工程师对手上的开发工具是有些追求的,如果不太喜欢在集成开发环境进行代码编写的话,可以考虑采用功能相对比较强大一点的编辑器,备受好评的软件有so...原创 2021-12-07 12:01:00 · 458 阅读 · 0 评论 -
编码能力被公司破制度给限制了
正文大家好,我是bug菌~今天跟很久前一个同事聊了会天,他和我一样做嵌入式软件开发,聊天中没有什么寒暄和吐槽,或许就是简简单单的知晓了双方的近况便早早结束了。当同事之间没有了太多的交际也就...原创 2021-12-08 21:55:43 · 270 阅读 · 0 评论 -
看了以前写的代码,我后悔了~
正文大家好,我是bug菌~又到周五了,想必你心中时不时会冒出来一句"有什么事下周一再说!!",然而我想没个打工人能说到做到吧,也就是给自己内心一丝安慰。最近工作上挺忙的,之前聊过在这家公司四年了入司四周年,在很多人看来,在一家公司待得越久,工作也会轻车熟路,变得越来越简单,越来越没什么压力。如果只是作为一名普通的工程师,相信时间越久生活确实会过得潇洒自在,但如果这家公司的团队有野心,有愿景,并且...原创 2022-10-21 22:16:35 · 284 阅读 · 0 评论 -
唠叨一些嵌入式技术学习习惯~
正文大家周五呀,我是bug菌~今年公司篮球赛终于开打了,就在昨天小组"30比43"输给了另外一个部门,bug菌打了一节就吃不消了,总共拿了3分(一个上篮,一个两罚一中),自我检讨,一整年疏于运动,现在全身肌肉还是酸的。算了算2023年1月22日过年的话,只有72天了,今年还有什么flag没有达到,可要抓紧了~最近一些朋友问道如何快速提升自己的技术能力,以前觉得提这样问题的人有点急功近利,所以一般也...原创 2022-11-11 23:02:25 · 164 阅读 · 0 评论 -
段错误排查方法与防御性措施~
什么是段错误首先我们需要知道什么是段错误,才能对症下药。段错误是一种在程序运行时发生的错误,通常是由于程序试图访问不在其地址空间范围内的内存引起的。例如,当一个程序访问空指针或者已经被释放的内存时,就有可能触发段错误。这种错误通常会导致程序崩溃,或者产生不可预测的行为。解决段错误需要对程序进行调试,检查代码中是否存在内存访问错误等问题。段错误排查方法下面我们以在linux下排查段错误为例,可以通过以下步骤来排查段错误:编译程序时添加-g调试选项,例如gcc -g main.c -o prog原创 2023-03-04 18:01:20 · 1424 阅读 · 0 评论 -
进行嵌入式C语言编程调试的通用办法
总结了一下调试我们嵌入式C程序的一些基本的办法和思想,供大家学习参考:打印日志:在代码中添加打印语句,输出变量值、函数调用等信息,以便在程序运行时观察程序执行情况。断点调试:在代码中添加断点,停止程序执行,观察断点前后代码的执行情况,一步步排查问题。单元测试:编写测试用例,针对每个函数或模块进行测试,发现问题点并进行修复。变量观察:使用调试工具观察变量的值,检查是否符合预期结果。调用跟踪:使用调试工具观察函数调用的顺序和传入参数,检查问题所在。重构代码:如果代码逻辑过于复原创 2023-03-04 17:12:43 · 862 阅读 · 0 评论 -
嵌入式编程别忽略了C语言的标准
正文大家好,我是bug菌~最近做代码评审发现很多同事的编码都游走在风险的边沿,其中最显眼的就是局部变量定义位置比较随意。对于C语言编程老手而言,绝大部分都已经养成了"变量定义必放在语句块的开头"这一习惯,依稀还记得那时候学校老师在课堂上强调C语言的局部变量一定要放在函数的开头。voidFunction(void){intVar1=0;intVar2=0;...原创 2022-12-05 21:33:15 · 926 阅读 · 0 评论