今天完成了应用程序编译,并且下载到米尔开发板上运行
遇到的问题
1 G++改到GCC 遇到的问题
原来应用程序是采用G++在Windows 的wsl 上编译的,而STM32MP157 的编译工具是GCC。其中有一些差别
- 注意 #include 中的h文件名大小写问题
- 编译命令 添加 -lstdc++ 和-lm
$CC -I./fblib -I./core -I./tinyxml2 forteV0.cpp ./fblib/*.cpp ./core/*.cpp ./tinyxml2/*.cpp -pthread -fno-stack-protector -o forte -lpthread -ldl -lm -lstdc++
2 下载到开发板运行时遇到的问题
在STLinux下:
开发环境中的SDK 包含的动态库(libm.so.6),和目标机上的动态库版本不一致.将开发SDK 中的so 文件直接copy 过去好了。
scp libm.so.6 root@192.168.31.194://lib
scp libstdc++.so.6 root@192.168.31.194://lib
在STM32MP157C 的ubuntu 下:
其中 libm.so.6 在STM32MPU_workspace/Develop-Package/SDK/sysroots/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi/lib中。并且传送到目标机的lib/arm-linux-gnueabihf/
(base) yao@yao-dc:~/yao2020/STM32MPU_workspace/Develop-Package/SDK/sysroots/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi/lib$ scp libm.so.6 root@192.168.31.80:/lib/arm-linux-gnueabihf/
而 libstdc++.so.6 在STM32MPU_workspace/Develop-Package/SDK/sysroots/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi/usr/lib中。并且传送到目标机的/usr/lib/arm-linux-gnueabihf/
(base) yao@yao-dc:~/yao2020/STM32MPU_workspace/Develop-Package/SDK/sysroots/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi/usr/lib$ scp libstdc++.so.6 root@192.168.31.80://usr/lib/arm-linux-gnueabihf/
3 程序的问题
应用程序MGcommand 中XML 处理也做了一些修改。j可能原来就不是很对,但是在G++下没有问题,GCC 却不行。毕竟G++不是GCC呀。
4 结果很理想
终于,IEC61499 运行时tinyForte 在STM32MP157上跑起来了。开心的一周也结束了。