嵌入式必备技能整理,你get到了吗?
一、代码查看利器source insight
-
如何确定此工程编译的是哪些文件
-
如何快速确定宏定义的值及执行的范围
-
如何确定某段代码、某个函数有没有被调用
-
如何快速找到需要的变量
-
如何定位某变量在哪里定义,在哪里使用,在哪里被修改
-
如何定位函数在哪里定义,在哪里使用
-
如何快速在多个函数之间来回跳转并理清逻辑
-
如何定位串口调试助手输出的字符在哪里产生
二、代码版本控制利器git
-
如何使用git 从网上下载某个项目的完整工程、特定版本工程
-
如何建立本地版本库、远程版本库
-
如何查看版本的名称、编号、修改的历史记录
-
如何进行版本切换、回退、前进、查看某文件的修改历史
三、代码对比利器beyond compare
-
如何快速对比两个文件夹内的文件
-
如何同步左右两边的修改
四、代码格式化利器astyle
-
如何快速格式化单个文件
-
如何快速格式化文件夹内的所有文件
五、搜索引擎google / bing / baidu
-
浏览器推荐使用Chrome 或者Firefox,不建议使用搜狗、360、QQ、2345 等浏览器
-
如何快速搜索到某个你想学习的教程
-
如何快速搜索到你遇到的问题和解决方法
-
如何快速确定你要搜索的资料的关键词
-
不得将原本是英文的网站,翻译成中文
-
经常访问的网址,有用的网址,要做好书签,并及时备份
-
不建议使用搜狗、360、2345 等搜索引擎
六、串口调试利器sscom
-
如何快速输入某些G 代码
-
如何保存历史使用过的G 代码
-
如何长时间接收串口的打印信息
七、日志记录利器有道云笔记
-
要养成经常做笔记的好习惯,不懂的,新鲜的,感兴趣的,都可以记录
-
同一个问题,你很可能会遇到很多次,记录下解决方法,后面会用到
-
温故知新,偶尔拿出来看看,花不了几分钟,就能融会贯通
八、学英语利器有道词典
- 不得开全局翻译,不得开屏幕取词,遇到不懂的,先思考其可能的意思,以免养成依赖
思想
-
建立单词本,将生词收录,偶尔看几下,扩充词汇量
-
不得进行整句翻译,因为机器翻译准确度有限,容易带坑,极大影响英语能力的提升
-
尝试多阅读英文文章,查找英文资料,甚至做笔记都使用英文,日积月累
九、编程习惯
-
代码风格要好,缩进要规范,函数名和变量要简洁易懂
-
要模块化编程,驱动和应用层要分开,高内聚,低耦合
-
注释要适当,一看就懂的地方,不需要注释,逻辑复杂、算法复杂的地方一定要注释
-
一律不得出现中文,更不能出现拼音,包括代码、工程路径、注释、编译环境的语言
-
一律将输入法默认设置为英文,以免每次输入都要切换语言,以免输入符号时难以察觉到错误
-
编程时要小心细致,避免犯低级错误,比如数字少零,比较语句写成赋值语句
十、电脑习惯
-
不安装来路不明的软件,请勿在百度里面直接下载,一律跳转至官网进行下载
-
电脑上要做到无弹窗、无广告、不卡顿,干净整洁
-
需要和谐的软件,去大论坛上找补丁,如看雪、52pojie 等,请勿百度后直接下载
-
软件请勿安装在C 盘,资料勿存在C 盘,以免系统错误后导致资料丢失
-
软件的工程文件夹,一律存放到E 盘或者F 盘等机械硬盘,因为固态硬盘数据丢失后无法恢复
-
代码定期备份上传至服务器,以免资料丢失无法恢复
十一、思维逻辑
- 如何在现有工程上添加新的功能
(1) 测试现有工程的功能,如硬件是否正常,数据是否正确,功能是否正常,流程是否清晰,文档是否完整,资料是否配套
(2) 备份当前工程,并做好标注
(3) 开启版本管理,以便后续代码的更改能追踪溯源
(4) 开发新的功能,修改代码,调试硬件,每一处修改,都需要使用git 进行版本控制以记录修改点,逻辑复杂的地方,需要做好注释
(5) 开发过程中,需要明确所有细节,如硬件连接是否正常,管脚是否正确,时钟是否打开,外设是否初始化,函数是否调用,数据是否溢出,必要时需要采用示波器、万用表、逻辑分析仪等设备进行波形和数据的查看分析
(6) 开发完成后,需要进行性能压力测试,如长时间工作,如多烧录几个设备同时检测
(7) 自我测试通过后,需要提交测试部进行综合测试
(8) 所有测试通过后,需要备份当前工程,并做好标注,然后发布
- 如何开启新的项目
(1) 通过原理评估、技术评估、方案评估等,确定项目的可行性
(2) 寻找市面上有无类似的产品,可参考其设计,去粗取精
(3) 立项、研发,具体可参考上一章节《如何在现有工程上添加新的功能》
- 软硬件联调时,如何快速定位分析到问题所在点
(1) 如添加热电偶测温的项目,修改Configuration.h 中的配置后,机器一上电就会打印出因温度过低而进入紧急停机状态,无法调试,那是否应该先找到紧急停机的位置,将其屏蔽后再次编译运行,然后再查看相关引脚配置是否正确,用示波器查看通信引脚上是否有波形,再通过串口将SPI 读取到的原始数据打印出来
(2) 如某款机器,无论如何调整切片参数,打印出来的模型效果始终非常差,那么此时是否应该拿在别的机器上打印得好的切片文件进行打印对比,确定是否是因为机器的原因,再确定是机器的软件、硬件或者结构方面的原因
- 如何快速验证某算法是否正确
(1) 比如某个新机型,其Z 轴的抬升高度,与输入的脉冲不成正比,如何确定其函数关系
(2) 比如开发屏幕UI,如何将PS 制作的RGB888 的BMP 图片,快速批量转换成RGB565的图片
- 如何进行自测
(1) 比如开发一个功能模块后,在验收前,需要保证各项指标和数据的正确性,如何进行自我测试,如何单一变量?如何重复测试?如何交叉测试?
(2) 如何模拟他人测试?因为自己开发的模块,自己对其非常熟悉,如何把自己变为一个从没接触过这个模块的小白来模拟测试?
(3) 如何应对可能出现的意外情况,比如数据错乱?换个工作环境设备失效?程序有没有做防呆设计、容错设计?
(上述只是抛砖引玉,能对大家有一点点帮忙那就是极好的,来自微信好友提供,特此感谢!!!)