本帖最后由 文波_苏州 于 2020-11-15 13:11 编辑
记得上学时刚学习C语言编程,大家都用命令行。那个时候的电脑跑的是MS-DOS操作系统或其变种,没有鼠标。要调试程序得办张叫做上机卡的东西,充好点数,到机房里“上机”。换上拖鞋走进冬暖夏凉的机房,屏幕上一片蓝汪汪的Turbo C界面。
后来有了Windows和Visual Studio,一度我以为开发环境的标准就是像VC++6.0那样的多窗口,仪表盘,所见即所得。想让Visual Studio跑得流畅,CPU和内存还不能太差。最好有一个或多个大显示器,这样可以平铺所有的窗口,不必再拖来拖去。要想效率高还要记忆些快捷键,不然鼠标点来点去就容易误事。
再后来工作了,单位规定了代码编辑用公司统一的编辑器,分布开发和版本管理也用统一的某款商业版本管理软件,代码调试和下载工具则取决于项目所用的方案。现在想想,这样做对于超过一定规模的集体开发是必要的。为了在不同的人和项目之间尽可能平滑切换,必须把代码编辑,版本管理,和调试下载等流程分离。不然每次换人或换方案团队的工作流就要调整适应。尤其是做单片机开发,换处理器方案是家常便饭。更进一步,为了做好持续集成和持续交付,开发流程中的工具还得方便自动化,这就要把各个工序的控制和状态用参数化的方式暴露出来,很自然的就要采用命令行的方式。
这次我们就用手上的这片OKDO E1来体验下LPC55S69对命令行工作流的支持。
1. 首先按NXP LPC55S69EVK的上手提示,下载ARM GCC https://www.nxp.com/document/guide/get-started-with-the-lpc55s69-evk:GS-LPC55S69-EVK
这次用手头的MacBook, 所以选择mac“绿色”版: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
下载后解压缩,并把路径加到shell的配置文件中 - tar -xvf gcc-arm-none-eabi-9-2020-q2-update-mac.tar.bz2
- echo export ARMGCC_DIR=~/Downloads/gcc-arm-none-eabi-9-2020-q2-update >> .bash_profile
- echo PATH=$PATH:~/Downloads/gcc-arm-none-eabi-9-2020-q2-update/bin >> .bash_profile
复制代码
2. NXP提供了云端的SDK Builder,可以只下载单个项目,继续选择led_blinky
解压缩,之后运行编译 编译好后,发现debug文件夹下多了一个led_blinkly.elf文件。
3. 本打算用OpenOCD进行烧写和调试, 但在它github的说明中没有找到LPC55的相关消息。搜索一下,发现pyOCD已经准备好了LPC55需要的配置,那就用它吧。顺便又发现了pyenv和 virtualenvwrapper这样的好东西,可以把每个项目所用的python包依赖分离开,避免污染python的全局环境和其它项目。
https://opensource.com/article/1 ... al-environments-mac
安装好libusb和pyocd
- brew install libusb
- pip install -U pyocd
复制代码
连接OKDO E1的DEBUG USB,成功发现调试器
烧写
挂上gdb
单步调试
搭建好了顺手的工具链,下一步打算用它体验LPC55S69的USB功能。
|