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

简介: 一个工作十年的嵌入式工程师,做过各种嵌入式项目,从单片机裸程序、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

相关文章
|
1月前
|
传感器 算法 安全
嵌入式工程师需要掌握哪些技术?
嵌入式系统广泛应用于生活各领域,如手机、汽车和医疗设备。入行嵌入式开发需掌握C/C++编程、硬件基础、操作系统知识、通信协议、调试技巧及特定领域知识。具备这些基础,通过学习与实践,可在嵌入式行业取得成功。
42 8
|
6月前
|
人工智能 自然语言处理 Java
程序员再过几年会没落?这是真的吗
《Computer World》杂志曾经写过一篇文章,说“编程到1960年就会消失”,因为IBM开发了一种新语言FORTRAN,这种新语言可以让工程师写出他们所需的数学公式,然后提交给计算机运行,所以编程就会终结。
|
传感器 机器学习/深度学习 Kubernetes
2023年的程序员将何去何从
2023年的程序员将何去何从
|
人工智能 架构师 程序员
十年老友记 | @边城:恰当的编程是会产生幸福感的
十年老友记 | @边城:恰当的编程是会产生幸福感的
151 0
|
程序员 数据库
“科班出身”的程序员和“培训出身”的程序员的大型辩论(甩锅)现场
前几天阿粉说阿粉最近换了公司,而且入职之后干掉了公司里面的测试数据库的事情,而接下来的事就比较有意思了,来自“科班出身”的哥们和来自“培训出身”的我的大型辩论(SIBI)现场,也不能说是通俗的甩锅,但是确实有那么点意味。
“科班出身”的程序员和“培训出身”的程序员的大型辩论(甩锅)现场
|
SQL 运维 NoSQL
35岁后程序员该何去何从?
你所处的行业在什么样的产业周期?你的能力是否被当下的行业所需要?你当前想要什么?你长远想要追求什么?
1064 0
35岁后程序员该何去何从?
|
存储 程序员 网络安全
这款“万金油”治好了我多年的职场焦虑症
有了TA,产品、运营还需跪求程序员吗?
2098 0
这款“万金油”治好了我多年的职场焦虑症
|
程序员
第12章 互联网创业神话 《丰富多彩的编程世界》
第12章 互联网创业神话 《丰富多彩的编程世界》 丰富多彩的编程世界 作者 陈光剑 第1章 名可名非常名第2章 语言的构成第3章 有趣的编程第4章 编程语言大观第5章 编程语言的组成第6章 编程范式第7章 编程思想第8章 编程心理学第9章 程序员这群人...
989 0
|
程序员
女网友吐槽程序员眼光高, 要钱要颜, 阿里网易程序员最现实
现在程序员无疑是一个高薪岗位,在如今互联网时代,一个技术型人才在社会上真的太吃香了,现在很多知名互联网公司员工的待遇也是十分优渥,但是有一个尴尬的问题是很多程序员人是单身。
1133 0
|
开发者
【教你赚钱】独立开发者荒野求生之道
本文包括以下内容: 独立开发者面临的现状 如何利用一切细节,获取流量 注:本文将不涉及代码层面的东西,但是将有可能帮助你,把你写完的代码的价值,放大十倍百倍千倍。
1447 0

热门文章

最新文章