十年嵌入式工程师,看到如今开发方式彻底震惊了

简介: 一个工作十年的嵌入式工程师,做过各种嵌入式项目,从单片机裸程序、RTOS到Linux也都玩过。那一套从编码-编译-烧录-测试的开发方式已深入内心。当新来的95后同事给他演示了使用轻应用开发物联网应用之后,他彻底震惊了,他第一次知道还可以如此方便的使用Python来开发嵌入式应用,他感叹到:当时代要将你抛弃的时候,连招呼都不跟你打。

一个工作十年的嵌入式工程师,做过各种嵌入式项目,从单片机裸程序、RTOS到Linux也都玩过。那一套从编码-编译-烧录-测试的开发方式已深入内心。当新来的95后同事给他演示了使用轻应用开发物联网应用之后,他彻底震惊了,他第一次知道还可以如此方便的使用Python来开发嵌入式应用,他感叹到:当时代要将你抛弃的时候,连招呼都不跟你打。

接下来带开发者们看看HaaS轻应用(Python)开发方式到底是什么样的。

前言

Python作为一种高级语言,借助于交互式解释器(Read Eval Print Loop:REPL)解释执行。这意味着其可以逐条执行,随时查看变量信息,这对在IoT设备上调试非常方便。传统的调试方式都是先逐行调试相关功能,在一定阶段后将相关功能集成到一个Python文件,通过Python命令直接解析执行。在集成调试阶段,我们经常会增加,删除,修改部分文件,并拷贝修改后的文件到SD卡上执行。这虽然节省了编译时间,但是重复的插拔SD卡为开发工作引入了了额外的操作,最好是能够实现一键推送。

借鉴alios-studio现有功能的交互功能,增加了针对Python轻应用的相关底层实现,重新打造了新的VS code插件amp-python,实现Python轻应用工程创建,编译,上传和运行一站式的开发环境,极大地方便开发者的Python轻应用开发。下面我们详细介绍一下新插件的原理,操作方式及新增特色功能。

amp-python是专门为Python轻应用打造的VS code开发环境,开发者可以利用该插件推送任意文件到HaaS设备上。amp-python已经发布到VS code插件市场,开发者直接搜索并安装amp-python即可。

image.png

1、工作原理

image.png

开发者首先选择创建工程,此时插件会从“轻应用市场”获取应用列表并展示在VScode页面上。开发者可以选择关心的应用并按照提示完成工程创建。插件后台会顺序执行下列操作:

1)下载并解压应用zip包到用户选择的工作台;

2)获取github仓库上的Python语法库,该语法库为Python开发提供自动补齐和高亮功能。

应用创建完成后,开发者可以编辑相关代码,编译工程以进行语法检测。在编译成功后启动Tftp将工程文件打包上传到HaaS设备的SD卡,同时触发Python文件的运行以实现板级运行和功能检测。

2、操作介绍

2.1、安装插件

开发者按照下图的指示,即可完成amp-python插件的安装。

image.png

因amp-python使用跟alios-studio相同的框架开发,所以两个插件存在部分status bar重复的地方,在UI视图上会引起混乱:

image.png

所以建议先关掉alios-studio插件,右键点击status bar的空白处,在弹出的选项列表里点击alios-studio即可。

image.png

2.2、按钮介绍

插件安装完成后,如果你当前的vscode未打开任何工作台,则vscode最下角的状态栏只会显示新建工程的图标;

image.png

若你已经打开了某个工作台,则会在VScode底部的状态栏显示如下一排按钮。

image.png

将鼠标悬浮在相关按钮即可显示该按钮的具体功能:

3C58CF66-A2F6-4E13-84C0-E434A9676F7E.png

2.3、详细操作

  • 新建工程:image.png

点击“新建工程”按键,会弹出轻应用市场上的Python工程。选择关心的工程

image.png

根据提示输入项目名称,点击回车是使用应用名称(python_demo1)作为工程名称。这里我们不做更改,直接回车。

image.png

之后指定你的工作台路径即可。插件会自动创建工作台路径文件夹。

image.png

工程创建完成后,插件会自动打开工作台文件夹,点击solutions展开可以看到你同步下来的示例工程

image.png

  • 编译工程:image.png

点击编译工程按钮即可实现对工程的编译。这里的编译仅实现对Python文件的语法检测,所生成的pyc文件也不是最终设备运行时候使用的文件。

  • 文件打包并通过TFTP上传image.png

点击上传按钮即可开始Python文件的上传,首次上传的时候会扫描wifi信息,请耐心等待。

上传通过TFTP实现,需要输入WIFI及串口配置相关信息,根据插件界面弹出的提示选择相关配置,wifi账号需要选择同PC连接的同一个WIFI网络。

上传文件的过程中会通过串口控制设备,所以在启动上传之前需要关闭调试终端,建议点击terminal的“kill terminal”按钮即可关闭当前串口。

image.png

下面显示的是配置系统信息相关页面,注意最后一项串口的波特率需要选择1500000

image.png

这里需要确保选择的wifi账号跟PC使用的wifi账号相同。譬如当前电脑使用的KIDS,所以上面的wifi也需要选择KIDS。

image.png

image.png

image.png

image.png

image.png

操作完成后,会弹出系统配置确认窗口,确认信息配置是否正确。

image.png

上述所有选择仅在首次启动TFTP上传的时候出现,插件会记录配置信息,后续操作无需再做选择。

启动TFTP应用上传后,我们就可以看到终端有tftp相关的Python执行输出,所有信息都会在terminal的输出行显示:

image.png

  • 更改系统配置image.png

如果开发者需要修改wifi信息和串口配置信息,可以点击更改系统配置选项进行重新设置。具体页面操作同上,这里不做赘述。

3、增强功能

首次文件上传后会在.vscode文件下生成tftpcfg.json文件,里面存储了TFTP传输的配置信息。开发者可以手动修改这里的信息,实现配置信息的快捷修改。

image.png

4、其他

目前串口终端和tftp文件上传使用相同的terminal页面,任何异常都可以通过先关闭当前terminal后重新操作尝试解决。

技术交流

Python轻应用继承了Python易学易用的特点,同时提供了基于嵌入式硬件的基础库封装,让开发者可以很方便的通过交互式的环境,实时进行嵌入式开发,让嵌入式开发也变得简单方便。如需更多技术支持,可加入钉钉开发者群,享受一对一的技术支持。

image.png

相关文章
|
3月前
|
移动开发 Dart 前端开发
“移动开发新纪元!跨平台框架与原生性能激情碰撞,未来已来!一场技术融合的革命大戏,你怎能错过?”
【8月更文挑战第7天】探索移动应用开发的未来:跨平台框架与原生性能的融合
69 3
|
4月前
|
传感器 算法 安全
嵌入式工程师需要掌握哪些技术?
嵌入式系统是科技核心,涉及生活多领域。入行需掌握C/C++编程,理解硬件基础如电路与处理器架构,熟悉RTOS及操作系统原理,掌握通信协议如UART、I2C,擅长调试与领域知识,如汽车、医疗。综合软硬件、设计、算法、网络、安全及团队协作能力,方能胜任嵌入式开发。
109 7
|
3月前
|
JavaScript 前端开发 开发者
震撼揭秘!JS模块化进化史:从混沌到秩序,一场代码世界的华丽蜕变,你怎能错过这场编程盛宴?
【8月更文挑战第23天】在 Web 前端开发领域,JavaScript 模块化已成为处理日益复杂的 Web 应用程序的关键技术。通过将代码分解成独立且可重用的模块,开发者能够更有效地组织和管理代码,避免命名冲突和依赖混乱。从最早的全局函数模式到 IIFE,再到 CommonJS 和 AMD,最终进化到了 ES6 的原生模块支持以及 UMD 的跨环境兼容性。本文通过具体示例介绍了这些模块化规范的发展历程及其在实际开发中的应用。
51 0
|
11月前
|
人工智能 自然语言处理 Java
程序员再过几年会没落?这是真的吗
《Computer World》杂志曾经写过一篇文章,说“编程到1960年就会消失”,因为IBM开发了一种新语言FORTRAN,这种新语言可以让工程师写出他们所需的数学公式,然后提交给计算机运行,所以编程就会终结。
|
传感器 机器学习/深度学习 Kubernetes
2023年的程序员将何去何从
2023年的程序员将何去何从
|
人工智能 架构师 程序员
十年老友记 | @边城:恰当的编程是会产生幸福感的
十年老友记 | @边城:恰当的编程是会产生幸福感的
189 0
|
程序员 数据库
“科班出身”的程序员和“培训出身”的程序员的大型辩论(甩锅)现场
前几天阿粉说阿粉最近换了公司,而且入职之后干掉了公司里面的测试数据库的事情,而接下来的事就比较有意思了,来自“科班出身”的哥们和来自“培训出身”的我的大型辩论(SIBI)现场,也不能说是通俗的甩锅,但是确实有那么点意味。
“科班出身”的程序员和“培训出身”的程序员的大型辩论(甩锅)现场
|
机器学习/深度学习 人工智能 算法框架/工具
机器学习应用行业浮躁、产品差?身为工程师的你是否想转行
十几个小时前,一位机器学习工程师在 reddit 上发帖求助:ML 领域浮躁、门槛低、产品差,无法专心做东西,该不该换个领域?帖子一经发布,立刻引起了大量讨论。
138 0
机器学习应用行业浮躁、产品差?身为工程师的你是否想转行
|
架构师 安全 Java
开发者故事|热爱代码且发量惊人,一名反“内卷”研发工程师的日常
许多人在选择“程序员”这一职业的背后,或多或少都会有故事可讲。本文是我们与一名 Erda 的用户沟通时深度挖掘到的故事,征得本人同意后对其进行了整理,并设立了【开发者故事】这一栏目,旨在收纳广大同学的故事。
265 0
开发者故事|热爱代码且发量惊人,一名反“内卷”研发工程师的日常
|
SQL 运维 NoSQL
35岁后程序员该何去何从?
你所处的行业在什么样的产业周期?你的能力是否被当下的行业所需要?你当前想要什么?你长远想要追求什么?
1093 0
35岁后程序员该何去何从?