
Stm32mp157使用的是正点原子的开发板,区别在于正点原子开发板没有用到集成 PMIC 芯片,所以需要在设备树中添加电源节点。 跑Linux的芯片一般有多个电源,比如正点,具有1.345V、1.212V、3.31V、3.31V、0.67V,由PWR_ONRST和PWR_ON控制上电顺序,需要在stm32mp157d-atk.dtsi添加电源节点信息。如图: 原因是内核和外设的电源供电不同,另外上电顺序必须严格按照芯片手册要求,不然容易出现各种问题。 个人感觉正点处理的很好,意法官方使用的STPMIC1APQR电源管理芯片。 野火的开发板使用的是RT8096CHGJ5和RT8097CHGB,同样由由PWR_ONRST和PWR_ON控制上电顺序控制上电顺序。如图: 如果自己编译内核的话需要注意上电顺序修改.dtsi文件。 接下来下载正点原子提供的固件包,这个暂时不动,项目中按照需求修改,其他板子应该会提供相应的BSP,按照技术手册进行修改,修改攻略有空再整理。 Mqtt使用阿里云的sdk,原因是提供的资料全面,移植难度低,稳定性高,具有SDK定制功能。 https://iot.console.aliyun.com/lk/document/tools 下载解压后出现文件LinkSDK文件,复制到ubuntu系统。 打开LinkSDK/Makefile文件,其中CC := gcc表示使用gcc编译器,需要改为自己的编译器,比如我使用的是arm-none-linux-gnueabihf-gcc,所以改为 CC := arm-none-linux-gnueabihf-gcc 在LinkSDK/demos中有各种历程,按照自己的项目要求进行修改就可以了,中文备注,修改难度不大。 也可以按照需求修改为单独线程,由 SRC_FILES := $(shell find . -not -path "/demos/.c" -not -path "/nopoll/" -name "*.c") 这句可知,所有/demos/.c文件编译为单独应用,多线程可直接用这个SDK,线程间通信按实际需求写,韦东山教程里面总结的很好。 之后再sudo环境下编译,复制到开发板中就可以用了。 qt环境的搭建参考正点原子的教程: 在qt中调用mqtt只需要新建一个qt工程,然后直接把LinkSDK添加进去就可以了,需要把原来的main函数改为普通函数,如下: 在c++中可以直接调用: 由此所有的数据上发使用类似的方法,由c++直接调用c函数,但是如果使用阿里云的异步调用或者同步调用则出现c不能调用C++的情况,首先json串进行解析: 然后 AliSend(json_value->valueint);处理解析后数据,AliSend为c++函数,作用是重写中断。 void AliSend(int n){ qDebug() << "AliSend:" <<n<< endl; // Threshold = n; if(n==0) { QApplication::postEvent(out,new QEvent(SetAddEvent)); } else { // out->Threshold = n; QApplication::postEvent(out,new QEvent(SetCutEvent)); } } 其中SetAddEvent为中断号,这个按照情况设置: const QEvent::Type SetAddEvent = (QEvent::Type)9001; 然后再event中进行处理,可以发现按键事件也是在这个函数中进行处理: 异步命令为{"Set":0}时,阀值+1。 异步命令为{"Set":1}时,阀值-1。 最后的效果如图: |
基于STM32MP1和STM32MP2在嵌入式Linux平台上部署有效的安全保护机制
利用STM32MP1和STM32MP2为嵌入式Linux提供有效的安全措施:供当今决策者参考的3条宝贵经验
STM32MP1 WiFi连接
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【STM32MPU 安全启动】 TF-A BL2 TrustedBoot原理学习
《STM32MPU安全启动》学**结
《STM32MPU安全启动》学习笔记之optee 如何加载CORTEX-M核和使能校验
《STM32MPU安全启动》学习笔记之TF-A BL2校验optee和uboot的流程以及如何使能
《STM32MPU 安全启动》课程学习心得+开启一扇通往嵌入式系统安全领域深处的大门。
《STM32MPU安全启动》 课程学习心得
编程环境为:Ubuntu 18.04.6 LTS) x6 M8 k/ W$ O2 L
工具环境为:Qt Creator 4.12.2" G; n9 p2 Z7 g2 |
编译工具:gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf W- y7 f6 K7 W; K2 d. E
下载方法:ssh 5 ]- M* m1 U* Z) v8 C
端口号:225 @; q/ Z# u% S$ K. E+ S" F% f: Q
用户名:root # M9 ], |8 C ~% \# P3 I' ~
密码:无