最近参与了一些嵌入式软件的工作,折腾了几个工具,记录一下,备忘。
01ARM DS-5
一个集成开发环境,配合硬件调试器使用。官网下载试用软件,可以使用ARM账号申请一个月的免费试用license。IDE是基于Eclipse定制的。
https://developer.arm.com/tools-and-software/embedded/legacy-tools/ds-5-development-studio
02基于Eclipse的Tcl调试环境
之前调试FPGA的Tcl脚本,单纯靠打印调错,效率比较低。可以搭建本地的Tcl调试环境,支持断点和单步调试。
另外,可以把FPGA相关的函数进行封装,在离线(不需要FPGA硬件)模式进行Tcl脚本调试,效率更快。
Win7/10需要安装的软件:
JDK
https://www.oracle.com/technetwork/java/javase/overview/index.html
Eclipse
https://www.eclipse.org/
Eclipse插件DLTK(Dynamic Language Toolkit)
https://projects.eclipse.org/projects/technology.dltk
ActiveTcl
https://www.activestate.com/products/tcl/
Komodo Remote Debugger
http://docs.komodoide.com/Manual/debugtcl
03使用Pycharm进行Python调试
之前用过Jupiter Notebook,也用过基本的命令行,Pycharm的集成开发环境支持断点、单步调试、语法提示等功能,用户界面比较友好。普通用户,安装社区版就够用了。
https://www.jetbrains.com/pycharm/
04基于SourceInsight阅读和编辑C代码
可以使用SmartRename功能进行函数名、变量名的替换。
对于3.5版本,可以配置外置程序Astyle进行代码风格的统一。4.0以上版本已经集成相关功能。
https://www.sourceinsight.com/
05 使用Astyle进行代码风格格式化
Astyle能够完成C/C++代码的格式化,包含缩进,括号,Tab,空格等,提供了Linux,GNU,KR等不同风格的默认模板可以选择,在Windows和Linux平台都可以使用。
http://astyle.sourceforge.net/astyle.html
06 VS2019社区版
宇宙第一IDE,微软公司出品,除了占用磁盘大一点,没啥毛病了。编译的快捷键终于又回到了F7。
社区版只要用电子邮件地址注册一个账号就可以免费使用,对于普通的C/C++开发足够了。
https://visualstudio.microsoft.com/zh-hans/downloads/
07 使用Python的正则进行文本替换
可以使用os.walk()遍历文件。
针对每一个文件,遍历需要的正则表达式进行文本替换。
可以把正则表达式放在一个有序字典中,按顺序进行处理。
正则支持跨行匹配。
类似的功能,也可以使用linux的文本工具sed来完成。使用Python可以方便地跨平台,在windows和Linux都可以使用。
https://www.runoob.com/python/python-reg-expressions.html
08使用Valgrind进行C代码内存检查
Valgrind是一个开源工具,可以用于C/C++代码的内存使用检查,能够发现开发中绝大多数内存错误使用情况,比如使用未初始化的内存,使用已经释放了的内存,内存访问越界等。
Valgrind可以在嵌入式开发中使用,需要进行编译。
除了内存检查,还可以用来检查函数调用,cache使用,多线程竞争等潜在问题。
http://valgrind.org/
09 Makefile的使用
在一个项目中,可以使用统一的config.mk保存公共的环境设置和Make操作,在具体目录中的Makefile中使用include进行引用。
可以使用Make -C 的方式,在顶层目录实现全部目标的编译。
Makefile要考虑代码跨平台(比如不同硬件设备)的兼容性。当然也可以考虑使用CMAKE进行跨平台。
10Git Bash
在windows上使用Git,同时提供了Linux的一个终端程序模拟器,支持常用的linux Bash命令,比如ls, tar, grep, find, 还有vim,对于习惯了命令行操作的工程师很方便。Windows下也可以使用TortoiseGit进行图形化操作。
https://gitforwindows.org
11BeyondCompare
代码比较、合并工具。支持文本,二进制,支持目录比较,功能强大,支持Linux和windows使用。
类似的工具很多,vimdiff,tkdiff,p4diff,Araxis Merge等。
http://www.scootersoftware.com/
12ADB(Android Debug Bridge)
可以使用ADB工具在PC和嵌入式设备之间进行数据传输。在windows需要安装ADB工具和驱动程序。
adb devices adb push filename /mnt/target_dir adb push dir_name /mnt/target_dir/dir_name adb pull /mnt/target_dir/target_file
https://developer.android.google.cn/studio/command-line/adb
13 Secure CRT
可以连接PC与开发板的串口进行调试。
可以使用sz和rz命令进行文件的传输。
可以保存session的串口打印信息到log文件。
可以使用工具->按钮栏,把常用的命令加到按钮,代替每次的重复输入。
https://www.vandyke.com/products/securecrt
14 Filezilla
ftp工具,可以用于PC与开发板的文件传输。
文件传输模式要选择二进制模式。
https://filezilla-project.org/
15 Everything
一款搜索神器,只有1MB的小工具。打开界面,搜索文件名任意字符,前后加上 ,就可以找到电脑上的文件,速度贼快。友情提示,如果电脑上有需要保密的视频资料,请谨慎使用*.mp4之类的搜索命令。
https://www.voidtools.com/
16虚拟机安装Linux
嵌入式开发需要交叉编译环境,使用虚拟机安装比较方便。
虚拟机软件可以使用Virtual Box或者VMWare。
https://www.virtualbox.org
https://www.vmware.com
Linux发行版目前使用Ubuntu 16.04。
在PC机与虚拟机直接使用共享文件目录的方式进行文件管理。大多数的源码和文件可以放在共享目录,这样windows和Linux都可以访问和管理。
编译器工具链需要保存在虚拟硬盘空间,放在共享目录会出现编译器无法运行的错误。
虚拟机挂起的时候如果PC机异常断电,可能会出现虚拟机镜像无法打开的情况,可以尝试删除虚拟机目录下的lock文件。要做好数据备份。
Ubuntu需要把软件源切换到国内镜像站点(比如阿里云或者163),安装其他工具包更快。
http://releases.ubuntu.com/16.04/
几点体会
选择合适的工具。
不要沉迷于工具。
要多向别人学习。
不要自己瞎折腾。
本文来源于:【学习笔记】一些软件开发工具的使用-变化吧门户
特别声明:以上文章内容仅代表作者本人观点,不代表变化吧门户观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。
- 赞助本站
- 微信扫一扫
- 加入Q群
- QQ扫一扫
评论