1 前期准备
安装依赖工具,
1> sudo pacman -S netbpm
将要显示的 logo 图片准备好,logo 格式可以是 png,bmp 或 jpge。
我用的是 png 格式的 logo,
uboot 的 logo 是 bmp 格式的,那么需要先转化为 bmp 格式,这里不能直接用 windows 的画图软件直接转化,直接转化后烧录 logo 会不显示,使用下述命令:
1pngtopnm ./mylogo.png | ppmquant 31 | ppmtobmp -bpp 8 > ./mylogo.bmp
命令及输出如下:
12345678910> pngtopnm ./mylogo.png | ppmquant 31 | ppmtobmp -bpp 8 > ./mylogo.bmppnmcolormap: making histogram... pnmcolormap: Scanning image 0 pnmcolormap: 8753 colors so far pnmcolormap: 8753 colors found pnm ...
1 前言
复习下,SPI、DSPI、QSPI 对应的接口时序,并作笔记。
2 SPI
2.1 简介
SPI(Serial Peripheral Interface),是一种同步串行通信协议,用于在微控制器与各种外围设备进行全双工通信,它是一种全双工通讯协议,意味着数据可以同时在两个方向上传输。它是由摩托摩拉公司设计。
SPI 协议通常由一个主设备(主机)和一个或多个从设备(从机)组成。主设备负责发起通信并控制数据传输的时序,而从设备则被动地响应主设备的指令并提供数据。
2.2 接口
SPI 通信涉及四条线:
SCLK:串行时钟(Serial Clock),由主设备产生,用于同步数据传输。
MOSI:主出从入(Master Out Slave In),用于从主设备向从设备传输数据。
MISO:主入从出(Master In Slave Out),用于从从设备向主设备传输数据。
SS(或CS):片选(Slave Select),主设备用来选中特定的从设备进行通信。
SPI 协议的工作方式是通过主设备产生时钟信号来同步数据传输。主设备通过 SCLK 线产生时钟脉冲,每个时钟脉冲对应一个数 ...
1 前言
学习并记录下 ESP32-C3-LCDkit 开发板的 GPIO 的使用。
2 Get-Started
.\esp-idf\examples\peripherals\gpio 目录下有二个例程,分别是 generic_gpio 和 matrix_keyboard,matrix_keyboard 是矩阵键盘的例程,手头上没有,干脆就不试了,简单看看 generic_gpio 这个例程。
copy esp-idf 的 generic_gpio 文件夹到自己的开发目录,这里我创建了个 esp_study 目录来存放,用于学习对应的 esp 例程。
2.1 generic_gpio 配置和实现
使用 vscode 打开 generic_gpio 工程,并且在 generic_gpio 根目录下保存工作区,并新建一个 .vscode,存放该工作区项目配置和工具相关文件,这个在前一篇基础入门的时候说过,就不多赘述了。
我们先配置一下工程,并让工程跑起来,同样的设置串口和使用的芯片,这里我选择 COM16 和 esp32c3,看 demo 的 README.md,可以知道,这个例程实现了两 ...
1 前言
上篇 ESP32-C3 开发环境搭建 提到了,我买了块乐鑫的 ESP32-C3-LCDkit 开发板,并且搭建好了环境,所以准备跑下 .\esp-idf\examples\get-started 的例程,试试基础的功能。
2 Get-Started
.\esp-idf\examples\get-started 目录下有三个例程,分别是 hello_world、sample_project、blink,所以我们简单分析并运行下这三个例程。
copy esp-idf 的 get-started 文件夹到自己的开发目录,这里我创建了个 esp_study 目录来存放,用于学习对应的 esp 例程。
2.1 hello_world
使用 vscode 打开 hello_world 工程,并且在 hello_world 根目录下保存工作区,并新建一个 .vscode,存放该工作区项目配置和工具相关文件。
完成后,在 .vscode 创建 c_cpp_properties.json,并填入下述内容:
12345678910{ "configurations&qu ...
ESP32
未读1 前言
最近购入了一块 ESP32-C3-LCDkit 开发板,准备拿来学习下,自从毕业后就基本没用过 espressif 的芯片了,记忆还停留在使用 ESP8266,所以重新学习下,并且做一些记录~
2 搭建 Win 开发环境
首先,进入对应的开发板的文档 ESP32-C3-LCDkit,这里面包括了开发板的对应资源描述、硬件说明、以及一些使用上的说明等。
我们主要是要搭建开发环境,所以进入应用程序开发 - 软件设置 - 快速入门。
我们需要安装 ESP-IDF(Espressif IoT Development Framework),在下方找到手动安装 - Windows Installer,
进入后,向下找到 ESP-IDF 工具安装器并进入该路径,可以看到有在线和离线的安装方式,推荐直接用离线的方式,在线安装可能需要代理。
下载完离线包后双击运行,选择简体中文 - 我同意此协议,随后进入安装前系统检测,等待检测完毕并进入下一步,
填写安装路径,默认是 C:\Espressif,我将安装路径填写到 C:\my\Espressif,因为本身我没有对磁盘进行分区,只有一 ...
1 前言
学习基于 I.MX6ULL 平台的 LVGL GUI 移植。
2 开发环境
系统: arch linux
工具: nxp-uuu-qt-tool
硬件: 正点原子 I.MX6ULL 开发板、LCD 800*480
软件: linux 内核 5.4.21、lvgl 和 lvgl drivers release/v8.3 以及 LVGL for frame buffer device
JFlash
3 准备
下述演示都是基于 win11 wsl2 debian 系统
首先,克隆 lv_port_linux_frame_buffer 仓库,命令如下:
123git clone https://github.com/lvgl/lv_port_linux_frame_buffer.gitcd lv_port_linux_frame_buffer/git submodule update --init --recursive
上述命令,克隆了 lvgl 的 lv_port_linux_frame_buffer 仓库,完成后进入该文件夹,git clone 并没有将子模块 lvg ...
1 前言
在使用 CC2640 OAD功能时,每次烧录都要烧录四个文件,而且四个工程四个输出文件都在不同的文件夹,操作起来复杂的很,所以折腾了一下,将四个烧录件合并为单个 .bin 文件,直接烧录一个即可。
2 开发环境
系统: win11
IAR Embedded Workbench IDE - Arm 8.32.1
SDK版本: simplelink_cc2640r2_sdk_5_30_00_03
例程: blestack\simple_peripheral_oad_onchip
JFlash
3 实现
oad_onchip 项目中,有四个工程,分别是 bim_onchip、app、persistent_app 和 stack,这些工程代表的意义这里就不赘述了,对这篇文章感兴趣的,相信应该对这些已经有一定的了解。
这四个工程对应的文件夹如图所示,
对整个项目进行编译后,会依次在下述几个路径生成对应的编译文件:
1234.\simple_peripheral_oad_onchip\tirtos\iar\app\FlashROM\Exe.\simple_peripheral_o ...
1 前言
简单记录下调试 Ti CC2640 时,所使用的仿真烧录器的烧录方式。
2 开发环境
win11
IAR Embedded Workbench IDE - Arm 8.32.1
JFlash
3 仿真器
3.1 J-Link EDU
注:市面上的盗版 JLINK ARM V8、 ARM V9 这些似乎均不支持 cJtag 功能,使用二线模式的时候需要注意自己用的 JLink 是否支持。
使用 JLink EDU,通过二线模式烧录仿真,需要 JLink 支持 cJtag 功能,连线上只需连接 TMS、TCK、VCC 和 GND 即可,RESET 脚可接可不接,为了方便使用,最好还是接上。
3.1 XDS110
使用 XDS110 时,同样可以使用 cJtag 功能,连接 TMS、TCK 和电源地以及 RESET,接法和上面 J-Link 一致。
也可以使用 Jtag 接法,不过目前用的板子没有引出那么多口,所以未使用该方式,附上参考连接图:
4 仿真和烧录
4.1 IAR
使用 IAR 对 CC2640 项目进行仿真烧录时,需要根据选择的仿真器进行配置,上述 JLI ...
什么是 pyinstaller
PyInstaller 可以将 Python 程序打包成的独立的可执行文件。它通过读取编写的 Python 代码并分析代码在执行时需要的每一个模块和库。通过收集所有这些文件的副本及 Python 解释器,将其放在一个文件夹里,或者生成一个单独的可执行文件。
pyinstaller 优缺点
优点:
打包快,并且操作简单。
跨平台
缺点:
性能差,执行的效率会比较低。
pyinstaller 捆绑编译的 Python 脚本(.pyc文件)。 原则上可以对这些进行反编译以揭示你的代码逻辑。
还有关于单文件打包的弊端,如下图:
来源于知乎 (https://www.zhihu.com/question/48776632/answer/2336654649) @韦易笑的回答。
pyinstaller 安装
1> pip install pyinstaller
校验是否安装成功:
12> pyinstaller --version5.11.0
pyinstaller 打包
使用一个实际的项目来演示如何打包,项目地址在 QtComMate,基于 ...
python
未读什么是 Nuitka
Nuitka 是一个用 Python 编写的 Python 编译器。完全兼容 Python 2.6、2.7、3.4、3.5、3.6、3.7、3.8、3.9、3.10 和 3.11 版本,它以一种极其兼容的方式将未编译的代码和已编译的代码一起执行。Nuitka 将 Python 模块翻译成 C 级程序,然后使用 libpython 和自己的静态 C 文件,以 CPython 的方式执行。
为什么使用 Nuitka
打包体积小
性能高,Nuitka 可以显著提高 Python 代码的性能,将其编译为二进制格式,可以比解释代码更有效地执行。这可以带来更快的执行时间和更好的资源利用率。
安全性,将 Python 代码编译成二进制格式可以使攻击者更难进行逆向工程或修改代码。
Nuitka 安装和环境
安装
1> pip install nuitka
校验是否安装成功:
12345> python -m nuitka --version1.7rc4Commercial: NonePython: 3.9.10 (tags/v3.9.10:f2f3f53, Jan ...