【说在前面的话】
在MDK下能用最新的Arm Compiler 6玩树莓派Pico的工程模板 Pico-Template 又双叒叕进化啦!现在不仅能单体自我调试(不熟悉的小伙伴可以看这篇文章《【更新】Pico-Template 稳定调试版v1.3.2发布》),最新版本 v1.5.0 还追加了新的特性:
- 直追树莓派Pico官方的pico-sdk,支持最新版本 1.3.x
- 无需额外的串口转USB工具,现在可以在MDK中直接观察printf输出结果啦!
- 使用 cmsis-pack来部署 perf_counter,方便大家在pack-installer中“一键追新”
下面就让我们来看看本次更新最大的亮点吧。
【如何在MDK中观察printf输出】
我们假设你已经知道如何在MDK中调试Pico,如果还不清楚的小伙伴,请务必先看一下这篇文章《【更新】Pico-Template 稳定调试版v1.3.2发布》)。
打开工程模板后,切换到新增加的工程配置“AC6-DebugInSRAM-printf”:
编译后,正常进入调试模式。依次通过菜单 View->Serial Windows 打开 Debug (printf) Viewer 窗口:
一般它会出现在MDK窗体的右下角位置,如下图所示:
由于我们的main()函数中已经包含了一句 printf 输出:
int main(void)
{
system_init();
printf("Hello Pico-Template\r\n");
uint32_t n = 0;
while (true) {
breath_led();
//gpio_put(PICO_DEFAULT_LED_PIN, 1);
//sleep_ms(500);
//gpio_put(PICO_DEFAULT_LED_PIN, 0);
//sleep_ms(500);
}
//return 0;
}
当我们开始执行时,就会在Debug (printf) Viewer中看到如下的输出结果:
这下PICO借助仅仅一根USB线,不仅能:
- 单体自助式的“我调试我自己”——其实是用两个Cortex-M0+核中的一个在tinyUSB的帮助下实现为 CMSIS-DAP;
还可以:
单体自助式的在MDK中实现 printf 输出,不光省了USB转串口的各类工具,连上位机都省了。
【如何获取最新版本】
一个合格的工程模板,应该做到只要成功的下载到了本地,就能够立即使用——Pico-Template也是这样。因此,所谓的Pico-Template的部署,实际上有三种方式:它们主要围绕着如何处理Pico-Template所依赖的第三方仓库而有所区别。
第一种方式:使用git工具进行下载
1、新建一个目录,比如叫做 pico-mdk来保存模板,并进入该目录
mkdir pico-mdk
cd pico-mdk
2、使用git工具clone模板到本地:
git clone https://github.com/GorgonMeducer/Pico_Template .
特别提示:不要漏了上面命令行最后的 "." 哦,它表示“将Pico_Template克隆到当前目录”
3、将Pico-Template所依赖的其它仓库以submodule的形式更新到本地:
git submodule update --remote --init
至此,我们已经成功的将Pico-Template同步到了本地一个叫做pico-mdk的目录下。
第二种方式:网盘见
如果你觉得上述方法都挺麻烦的,尤其是你无法稳定的访问Github,那么可以在订阅【裸机思维】公众号后发送关键字 "Pico"来获取网盘链接。下载成功后立即可以使用。
这一方法唯一的缺点是:我可能会忘记更新网盘上的压缩包。
【说在后面的话】
感谢大家对这个项目一直以来的支持和反馈,让我有足够的动力去不断完善它。围绕Pico-Template,最近国内的开源圈子里有了一系列联动,比如:
- 隔壁的PikaScript(一个在极端小资源环境下跑 python 脚本的开源项目)借助Pico-Template完成了对Pico的支持和移植(详见文章《当Pico在MDK遇上Pika是一种怎样的体验》)
- 有小伙伴借助 arm-2d 上的 Pico-Template移植制作了一系列小游戏,比如走迷宫、俄罗斯方块等等(详见文章《那些年我们一起玩过的俄罗斯方块小游戏(源码详解)》)
Pico-Template将原本依赖命令行开发环境的Pico重新带回了MCU开发的舒适区——使用MDK进行调试和开发——因此更多的小伙伴得以加入进来,这日子真是越来越有盼头了!
首发:裸机思维
作者: GorgonMeducer 傻孩子
专栏推荐文章
如果你喜欢我的思维,欢迎订阅裸机思维
版权归裸机思维(傻孩子图书工作室旗下公众号)所有,
所有内容原创,严禁任何形式的转载。