摘要: 经过上一篇软件优化之后,pzh-com已经初长成,该到了出去历练的时候了,只有经历广大群众考验过的软件才是合格的软件。痞子衡在开发pzh-com时本地安装了很多软件:Python、pySerial、wxPython等,这些软件是pzh-com运行的基础,但如果将来别人想用pzh-com,是不是也需要安装这些软件呢?答案当然不是,如果是的话,pzh-com基本就没人愿意使用了。为了让别人能够不需要特殊环境便能运行,我们需要将pzh-com打包成独立可执行文件,此时我们需要借助专门的Python打包工具,本篇是这个系列的最后一篇,痞子衡为大家讲如何使用打包工具打包pzh-com去发布。 阅读全文
posted @ 2017-05-21 22:33 痞子衡 阅读(898) 评论(0) 推荐(0) 编辑
摘要: 前面痞子衡已经初步实现了pzh-com的串口功能,并且通过了最基本的测试,但目前的pzh-com相比市面上流行的串口调试工具还差得很远,有很大的优化空间。优化可以从两方面进行:一、是功能上的优化,可以添加更多实用的功能;二、是界面效果上的优化,可以增加一些界面动画效果或者重新配色美化界面。下面痞子衡从这两方面分别为pzh-com做一些简单的优化 阅读全文
posted @ 2017-05-20 21:47 痞子衡 阅读(867) 评论(0) 推荐(0) 编辑
摘要: 软件开发离不开调试,调试手段分两种:一是黑盒调试,即直接从输入/输出角度测试软件功能是否正常,这种方式仅能发现问题,但无法直接定位问题原因所在;二是白盒调试,即直接拿源代码在线debug,python虽是一种脚本语言,但借助一些Python IDE也可以实现单步调试,通过单步调试可以找到问题根本原因。前面我们已经初步实现了pzh-com,下面痞子衡会从黑盒和白盒的角度分别测试pzh-com功能: 阅读全文
posted @ 2017-05-14 21:27 痞子衡 阅读(937) 评论(0) 推荐(0) 编辑
摘要: 串口调试助手是最核心的当然是串口数据收发与显示的功能,pzh-com借助的是pySerial库实现串口收发功能,今天痞子衡为大家介绍pySerial是如何在pzh-com发挥功能的。 阅读全文
posted @ 2017-05-13 22:55 痞子衡 阅读(1662) 评论(0) 推荐(0) 编辑
摘要: 一个软件的UI界面是非常重要的,这是软件与用户交互的接口,软件功能即使再强大,但如果没有清晰的UI界面,那也发挥不出软件的功能,使得用户体会不到软件的优势。今天痞子衡给大家介绍pzh-com的界面构建过程。 阅读全文
posted @ 2017-05-07 21:59 痞子衡 阅读(1443) 评论(0) 推荐(0) 编辑
摘要: 在讲本文主角wxFormBuilder之前有必要提一下这个软件的来历,首先要追述到大名鼎鼎的跨平台GUI库wxWidgets,这个库主要是用C++语言实现的;鉴于wxWidgets的流行,Robin Dunn用Python语言对wxWidgets做了一层封装,封装后便成了Python版GUI库wxPython;使用wxPython手工写代码设计界面太繁琐,因此wxFormBuilder应运而生,这是一款能够可视化设计界面的工具,通过该工具设计GUI界面后可自动生成wxPython代码 阅读全文
posted @ 2017-05-06 20:09 痞子衡 阅读(20458) 评论(2) 推荐(0) 编辑
摘要: 在写pzh-com时需要先搭好开发和调试环境,本篇文章列出了开发过程中会用到的所有软件/工具包 阅读全文
posted @ 2017-05-03 21:00 痞子衡 阅读(1916) 评论(0) 推荐(0) 编辑
摘要: 串口调试助手是嵌入式开发里非常常用的小工具,市面上有非常多流行的串口调试工具,比如TeraTerm、SecureCRT、AccessPort、sscom等,其中有些工具功能全面且强大,可以满足大部分串口调试需求,但如果有的时候你有一些特殊定制化的需求,这些工具不一定能满足你的需求,这时候你需要写一个属于你自己的串口调试助手,本系列痞子衡会教大家从零开始写一个基于Python的串口调试工具,这个串口调试工具我们暂且叫她pzh-com。 阅读全文
posted @ 2017-05-01 20:12 痞子衡 阅读(1391) 评论(0) 推荐(0) 编辑
摘要: KBOOT的ROM API特性主要存在于ROM Bootloader形态中,KBOOT内部集成了一些Kinetis内部IP模块driver,这些IP模块driver首要目的是用于实现KBOOT的功能,但由于这些IP模块driver会随着KBOOT一起被固化在ROM空间里,所以如果这些IP driver能够被外部(主要是运行于Flash中的Application)调用,那么肯定会节省Application代码空间,这么看起来将ROM Bootloader里的一些IP driver以API的形式export出去是很有意义的,这么有意义的事,KBOOT当然是会做的。 阅读全文
posted @ 2017-04-30 22:27 痞子衡 阅读(1025) 评论(0) 推荐(1) 编辑
摘要: 大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是飞思卡尔Kinetis系列MCU的KBOOT之完整性检测(Integrity Check)特性。 Application完整性检测是非常重要的,想象一下如果你的系统中Application被人为破坏了一部分并注入异常代码,而系统在启动过 阅读全文
posted @ 2017-04-23 21:03 痞子衡 阅读(2421) 评论(2) 推荐(1) 编辑
摘要: KBOOT是支持配置功能的,配置功能可分为两方面:一、芯片系统的启动配置;二、KBOOT特性配置;痞子衡在前一篇文章里介绍了KBOOT形态,虽然KBOOT有三种形态,但实际上只有2种类型的芯片载体,即含ROM空间的芯片(比如Kinetis K80)和不含ROM空间的芯片(比如Kinetis KL25),KBOOT配置在这两种载体上是有区别的. 阅读全文
posted @ 2017-04-08 21:05 痞子衡 阅读(2013) 评论(12) 推荐(2) 编辑
摘要: 我们知道KBOOT是一个完善的Bootloader解决方案,这个解决方案主要设计用于Kinetis芯片上,目前Kinetis芯片起码有上百种型号,KBOOT在这上百种Kinetis芯片里存在的形式并不是完全一样的,KBOOT主要有三种存在形式(ROM Bootloader、Flashloader、Flash-Resident Bootloader) 阅读全文
posted @ 2017-04-04 21:49 痞子衡 阅读(1465) 评论(0) 推荐(0) 编辑
摘要: Bootloader是嵌入式MCU开发里很常见的一种专用的应用程序,在一个没有Bootloader的嵌入式系统里如果要更新Application,只能通过外部硬件调试器/下载器,而如果有了Bootloader,我们可以轻松完成Application的更新升级以及加载启动,除此以外在Bootloader中还可以引入更多高级特性,比如Application完整性检测、可靠升级、加密特性等。KBOOT是设计运行于Kinetis芯片上的一种Bootloader,KBOOT由飞思卡尔(现恩智浦)官方推出,其功能非常全面 阅读全文
posted @ 2017-04-02 21:45 痞子衡 阅读(1589) 评论(0) 推荐(2) 编辑
摘要: 现实生活中的所有信息在计算机看来就是一堆数据,计算机的工作就是和数据打交道。简单来说,计算机最核心的功能就是两个:存储数据、处理数据。计算机首先得要能正确地存储用户数据,有了数据之后,计算机还要能够按照用户要求处理(运算)数据。今天痞子衡要讲的就是数据(整数)在计算机中是怎么存储(表示)的。 阅读全文
posted @ 2017-03-26 21:55 痞子衡 阅读(1459) 评论(0) 推荐(0) 编辑
摘要: 今天是Git系列课程第七课,上一课我们学会了查看Git本地历史提交,今天痞子衡要讲的是Git仓库的整理操作,一共4个命令,都是日常开发中非常实用的命令,掌握这4个命令,会让你有一种玩弄Git仓库于股掌的感觉。由于本节课是教程的核心课程,所以会分4小节课来讲,第一讲介绍git stash 阅读全文
posted @ 2016-12-25 21:53 痞子衡 阅读(647) 评论(0) 推荐(0) 编辑