1、和ARM-M4内核开发使用IDE不同的是,基于Linux开发就更丰富多样了。在Linux搭建了什么平台就可以用什么开发方式。基于C++的开发是最高效和便捷的,基于python,go,andoid的开发也可以,明确有android的系统(把android列进来,因为也是一个linux derivation的衍生平台)2. Linux的开发可以在开发板上直接开发,但是,需要在开发板上建立完整的开发工具平台,如CC,gcc,linaro-gcc等,或者按照完整的python及其依赖包。所以,这些开发工具安装起来并不容易,同时,除了开发,在执行的过程没有什么用处,而且嵌入式系统性能有限,大的开发项目就很慢了。" Y: G- w* E9 C- x 在嵌入式系统做开发包的典型是树莓派,可以支持anaconda这样的大开发包,当然是一个miniconda。其他的更不在话下,在A7内核上通常不建议。 但是这样的开发有个最大的好处,就是本地开发,所得及所见,没有依赖环境和交叉编译兼容性的问题,因此,也可以算一种方式。 3、更多的是采用host计算机上交叉编译的方式。通常需要用Linux操作系统,对于多数windows系统就要上一个笨重的虚拟机,其实采用双操作系统的更好用。直接在windows系统安装支持交叉编译的编译器也可以,不过,往往需要一个minWG,也不好用。1 V" v: y5 V) F/ f4 |+ G; E, E 交叉编译器有2种,linaro-xxx,和arm-xx原生的gcc交叉编译器,需要看准了版本,是否支持ARM-a7系列。 ~, a' t( A' w e$ O( B2 S 4、然后就,把build好的二进制可执行文件下载到开发板上,就可以运行调试的。对于SD卡,简单粗暴的直接copy就可以,使用网口连接,就要开通ssh,用scp下载。 在使用QT creator的开发,可以直接ping通IP地址,下载,编译运行的工作,一键完成。 5. 连接开发板,最基本的方式就是使用UART协议串口连接,如下图, 使用st-link v2端口串口通讯,115200-8-1-N,就可以直接进入控制台 这个控制台的root没有设置密码9 B+ {7 S# n+ q$ F5 g 这次采用了主机直连以太网口,但是没有联通,开发板没有启动http服务,在演示程序是可以访问的,应该是需要增加一个启动命令, 没有设置ifconfig的IP地址,只有MAC地址, 对于外设,访问是用类似文件访问的方式执行的,对于GPIO,是/sys/class/gpio文件夹下就可以直接操作,进入这个文件夹,却没有启动gpio,对比其他系统,增加了一个leds文件夹。 整体的系统结构还需要进一步探究。 6、对应于系统的build,st的wiki有非常详细的介绍步骤,而且因为有CubeProgrammer等配套工具,这样的方式兼容性好。对于需要自定义硬件的情况,自制系统是必选项。 首先选择源,对于stm32MP1是优选yocto,这个是专门针对嵌入式系统的,注重效率和完整性,入门难度中等,更新速度快,大约1-2个月一次更新。相对更推荐记忆debian的系统,这样的系统和Ubuntu非常接近,很多在Ubuntu上调试通过的包,在debian系统可以很容易通过。尤其对于DL引擎,面向大众的demo都是基于ubuntu16.4.0的。Ubuntu的开放性不那么好,自制img的资源不那么丰富,用debian就有非常多的手册和范例学习。用debootstrap在host计算机上就可以完成,用qemu模拟器结合debootstrap就更方便,这个过程比较耗时间的,而且出现问题解决比较慢,需要加入邮件列表提交问题,不过会遇到开发社区的开发者会亲自回答,并会对代码进行修订。 在随后的测试中,需要逐步把这些步骤测试下。2 b$ ~ k# Q: |( E: j |
赞一个 |
最新消息:意法半导体最具性价比、速度最快的单核MPU STM32MP13现已支持运行RTOS!意法半导体兑现了之前的承诺!
STM32MP135F-DK开发板评测-开箱亮屏
意法半导体扩展STM32Cube开发环境,简化单核STM32MP1裸机软件开发
1月18日有奖直播 | 如何在STM32MP13x上实现FOTA升级?
【STM32MP13x直播回顾】 直播答疑汇总
STM32MP135 开发平台介绍
使用STM32MP13: 如MCU般在Cortex-A核上裸 跑应用程序
米尔核心板加速基于STM32MP1的产品开发
STM32MP1充电桩全数字交互实现
STM32MP13 产品线 应用于工业和安全的高性价比MPU