“FS-MP1A问题集锦”的版本间的差异

来自华清远见研发中心
跳转至: 导航搜索
关于系统移植的问题
硬件相关
 
(未显示同一用户的37个中间版本)
第7行: 第7行:
  
 
解答:1)重新下载文件看下;   
 
解答:1)重新下载文件看下;   
::2)如果还是不可以,在群文件找以下文件
+
::2)如果还是不可以,在网盘资料找以下文件
  
<center>[[Image:1-1-2.png]]</center>
+
<center>[[Image:1-1-2-(1).png]]</center>
  
 
<li>问题二</li>
 
<li>问题二</li>
第53行: 第53行:
 
<center>[[Image:6.1.png]]</center>
 
<center>[[Image:6.1.png]]</center>
  
解答:类似的错误一般是编译工具使用不正确  重新编译时 可以先 make clean下 然后倒入环境变量 再make导入
+
解答:类似的错误一般是编译工具使用不正确  重新编译时 可以先 make clean下 然后导入环境变量 再make导入
  
 
<li>问题七</li>
 
<li>问题七</li>
第86行: 第86行:
  
 
解答:如果使用的是我们提供的vmware不需要安装,可以根据下图步骤尝试
 
解答:如果使用的是我们提供的vmware不需要安装,可以根据下图步骤尝试
<center>[[Image:11.1.png]]</center>
+
<center>[[Image:1.11.1.png|840px]]</center>
  
 
<li>问题十二</li>
 
<li>问题十二</li>
第136行: 第136行:
  
 
解答:我们的环境都是基于18.04搭建的,建议使用18的,18和20有很多不兼容的地方
 
解答:我们的环境都是基于18.04搭建的,建议使用18的,18和20有很多不兼容的地方
 +
 +
<li>问题十八</li>
 +
开发板如何支持U盘 exfat格式和NTFS格式,现在是5.4内核应该是支持的,但是挂载不上去。
 +
 +
解答:用mount命令
 +
 +
<li>问题十九</li>
 +
FSMP1可以跑cuda吗
 +
 +
解答:跑不了
 +
 +
<li>问题二十</li>
 +
使用sd卡启动ubuntu镜像之后,然后在里面下载文件,是存到emmc里还是sd卡里呢
 +
 +
解答:存到了sdcard下了
 +
 +
<li>问题二十一</li>
 +
建立的Ubuntu虚拟机分配内存小了,不重新装的情况下有办法再次分配吗
 +
 +
解答:直接加大就可以
 +
 +
<li>问题二十二</li>
 +
想要烧emmc ubuntu烧不上,用sdcard可以
 +
 +
解答:Ubuntu不支持emmc烧录
 +
 +
<li>问题二十三</li>
 +
按照教程无法安装pip该怎么办<br>
 +
<center>[[Image:1-23-1.png]]</center>
 +
 +
解答:用这个带ai的镜像<br>
 +
<center>[[Image:1-23-2.png]]</center>
 +
 +
<li>问题二十四</li>
 +
开发板摄像头视频采集的videopath是什么
 +
 +
解答:一般是dev下的video0
 +
</ol>
 +
 +
==关于ARM的问题==
 +
<ol>
 +
<li>问题一</li>
 +
STlink插进去,“!”也没有
 +
 +
解答:安装下烧录工具
 +
 +
<center>[[Image:ARM-1-1.png]]</center><br>
 +
 +
<li>问题二</li>
 +
调试cortex-m4/3_exti的工程
 +
 +
<center>[[Image:ARM-2-1.png]]</center><br>
 +
这个回调在main里面的什么地方调用
 +
 +
解答:回调函数是在发生中断后调用,具体在哪个文件中可以ctrl+F直接搜索查看。
 +
 +
<li>问题三</li>
 +
给的TIM工程中,如何设置cpu主频和中断周期<br>
 +
解答:这两个参数可以设置中断周期,这里设置的时间间隔1秒钟
 +
 +
<center>[[Image:ARM-3-1.png|580px]]</center><br>
 +
 +
主频可以在这个地方修改<br>
 +
 +
<center>[[Image:ARM-3-2.png|580px]]</center><br>
 +
 +
例:将M4的CPU主频设置为120MHz<br>
 +
将这两个地方都设置成120
 +
<center>[[Image:ARM-3-3.png|580px]]</center><br>
 +
 +
<li>问题四</li>
 +
M4 uart课程编译下载调试程序都可以,电脑端收不到printf的内容,发送的1234没有反应<br>
 +
电脑端串口助手设置的属性如下 115200,8,1,n
 +
 +
解答:<br>
 +
1、检查电脑串口配置有没有问题,源码实现的功能发送五个字符,然后可以接受五个字符<br>
 +
2、检查最开始的一行字符串 UART TEST有显示吗,如果Printf没有显示可能是串口没连上,检查一下串口电脑配置,或者连接有没有问题<br>
 +
 +
<li>问题五</li>
 +
做A7与M4通信时出现M4断点无法生效,在main一开始设置的断点<br>
 +
解答:<br>
 +
一开始进入debug模式就默认开始运行了,它会直接运行到while循环里,所以在while外设置断点是看不到效果的<br>
 +
可以在while循环里第一句设置断点看一下效果<br>
 +
 +
<li>问题六</li>
 +
双核通信的时候怎么动态分配硬件资源<br>
 +
解答:<br>
 +
这个是设备树配置好的,参考开发教程 扩展板CAN总线驱动移植章节  设备树相关配置
 +
 +
<li>问题七</li>
 +
M4可以访问外部的ddr ram(显示数据随机存储器)吗
 +
 +
解答:这部分例程暂时没有
 +
 +
<li>问题八</li>
 +
M4和A7双核通信的实验,在ubuntu18下接板子usb otg后没有反应,weston-openst linux下可以正常用,请问可能是什么原因呢?(不是RNDIS读不出来,是usb就没有读到)另外ubuntu下以太网也连不起。是缺少驱动吗?该下哪个版本的?
 +
 +
解答:ubuntu中otg没有做支持,可以使用有线网卡做传输
 +
 +
<li>问题九</li>
 +
这个要怎么勾选,在stm32cubeide里,做debug configuration<br>
 +
<center>[[Image:2-9-1.png]]</center>
 +
 +
解答:把7.1换成实际网段ip<br>
 +
可以参考这个看下,ubuntu下的多核我们这边也没有测试过,驱动都是配置了的<br>
 +
https://wiki.stmicroelectronics.cn/stm32mpu/wiki/STM32CubeMP1_Package#STM32CubeMP1_package_overview
 +
 +
<li>问题十</li>
 +
这个m4 有个LED点亮的程序,现在程序可以在开发板上运行,但是开发板重新上电就不运行了,这是什么原因
 +
 +
解答:这个是下完程序,每次断电以后,下进去的程序就清除了,所以重新上电以后就不会继续运行的
 
</ol>
 
</ol>
  
第200行: 第311行:
  
 
解答:编译前导入一下交叉编译工具
 
解答:编译前导入一下交叉编译工具
 +
 +
<li>问题十一</li>
 +
M4的程序必须是A7启动linux后再加载M4的程序吗
 +
 +
解答:<br>
 +
对的,uboot下也可以,uboot加载目前没有例子,可以从st官方wiki查一下
 +
 +
<li>问题十二</li>
 +
<center>[[Image:uboot-12-1.png]]</center>
 +
做u-boot源码编译的时候出现如下问题
 +
<center>[[Image:uboot-12-2.png]]</center>
 +
 +
解答:先导入sdk
 +
 
</ol>
 
</ol>
  
第207行: 第332行:
 
这个stm32cubeprog烧写文件,有个.TVS格式文件
 
这个stm32cubeprog烧写文件,有个.TVS格式文件
  
 +
<center>[[Image:3.1.1.png]]</center><br>
 +
用txt打开,里面是这些内容,这是什么意思
 +
 +
解答:uImage和dts被打包到rootfs里了;dts和uImage是在bootfs这个镜像中,bootfs这个镜像最终会在系统启动之后被挂载到rootfs这个镜像中的boot文件夹下。
 +
 +
<li>问题二</li>
 +
为什么有重复烧写的,哪个是uImage,哪个是dts,哪个是rootfs,哪个是u-boot
 +
 +
<center>[[Image:3.1.1.png]]</center><br>
 +
 +
解答:重复烧录的是fsbl1和fsbl2
 +
 +
<li>问题三</li>
 +
除了uboot和这个23序号文件,其他序号的文件可以不要吗
 +
<center>[[Image:3.1.1.png]]</center><br>
 +
 +
解答:不可以
 +
 +
<li>问题四</li>
 +
fsbl1和fsbl2是什么
 +
<center>[[Image:3.1.1.png]]</center><br>
 +
 +
解答:fsbl1用于存放tf-a的镜像,fsbl2是tf-a的备份分区
 +
 +
<li>问题五</li>
 +
如果做整套移植,需要更换里面哪些文件
 +
<center>[[Image:3.1.1.png]]</center><br>
 +
 +
解答:
 +
<center>[[Image:3.5.2.png|940px]]</center><br>
 +
这些是需要移植的,其它的根据实际的需求决定
 +
 +
<li>问题六</li>
 +
这一步没出现YACC和LEX两项是怎么回事
 +
<center>[[Image:3.6.1.png]]</center><br>
 +
<center>[[Image:3.6.2.png]]</center><br>
 +
 +
解答:先看下scripts/kconfig目录下有没有这三个文件,如果有的话就是已经做过LEX和YACC了  Makefile不会根据时间戳决定要不要重新做这件事情
 +
<center>[[Image:3.6.3.png]]</center><br>
 +
 +
<li>问题七</li>
 +
文档21.6章节Yocto构建系统,导入编译配置出现以下错误
 +
<center>[[Image:3.7.3.png]]</center><br>
 +
<center>[[Image:3.7.2.png]]</center><br>
 +
 +
解答:重新执行导入编译配置命令,出现一个许可声明
 +
<center>[[Image:3.7.3.png]]</center><br>
 +
或者执行完命令后,直接出现许可声明
 +
 +
同意即可进行下一步
 +
<li>问题八</li>
 +
镜像烧写,没有看到”USB1”端口
 +
<center>[[Image:3.8.1.png]]</center><br>
 +
 +
解答:将开发板重新上电或者按开发板的复位按钮,之后点击Port后的“刷新”按钮。<br>
 +
如果还不可以,就重启
 +
 +
<li>问题九</li>
 +
检测不到usb
 +
<center>[[Image:3.9.1.png]]</center><br>
 +
 +
解答:<br>
 +
1)看拨码开关是否拨对了<br>
 +
2)虚拟机是否开着<br>
 +
3)安装的是不是linux版的烧写工具,看linux下是否识别到usb设备<br>
 +
4)看windows下是否可以检测到,如果可以检测到,说明linux下驱动没有安装好<br>
 +
5)缺少的那个驱动应该是在安装STM32CubeProgrammer这个软件的时候安装的<br>
 +
6)重新安装时没有驱动安装提醒应该怎么办<br>
 +
这个可能需要看下st官方的文档,看下linux安装需要注意些什么<br>
 +
 +
<li>问题十</li>
 +
Trusted Firmware-A 移植,固件烧写速度太快,烧写不成功
 +
 +
<center>[[Image:3.10.1.png]]</center>
 +
解答:速度太快没有烧写成功,
 +
<center>[[Image:3.10.2.png]]</center>
 +
自动创建了一个sdb3,需要把sdb3删除(把设备弹出,然后用sudo 权限rm删除),然后重新执行sudo dd if=u-boot-stm32mp157a-fsmp1a-trusted.stm32 of=/dev/sdb3 conv=fdatasync
 +
 +
<li>问题十一</li>
 +
IP设的没问题
 +
<center>[[Image:3.11.1.png]]</center>
 +
Ping不通
 +
<center>[[Image:3.11.2.png|940px]]</center>
 +
 +
解答:可能没有安装tftp的服务器和基础包
 +
 +
<li>问题十二</li>
 +
蓝牙驱动移植,开启蓝牙设备时显示没有找到设备
 +
 +
解答:可能是没有更新设备树
 +
 +
<li>问题十三</li>
 +
Ubuntu18.04镜像烧录问题
 +
 +
解答:ubuntu只能通过tf卡烧录
 +
 +
<li>问题十四</li>
 +
在使用ubuntu系统遇到一个问题,在编译内核文件之后,通过tftp方式更新内核,然后启动系统,这样是可以看到新的内核文件,但是重启系统后,这个内核文件就看不到了。尝试用scp的方式更新内核,但是一直没有成功。这个问题怎么解决。
 +
 +
解答:<br>
 +
首先执行 sudo mount /dev/mmcblk1p4 /mnt<br>
 +
然后mnt目录里就能看到了<br>
 +
每次重启后都需要挂载(执行 sudo mount /dev/mmcblk1p4 /mnt)
 +
 +
<li>问题十五</li>
 +
编译内核报错
 +
<center>[[Image:3.15.1.png]]</center>
 +
 +
解答:按照linux开发工具安装章节,把所有的工具都安装下。<br>
 +
这个是缺少一个依赖包导致的
 +
<center>[[Image:3.15.2.png]]</center>
 +
 +
<li>问题十六</li>
 +
编译内核报错
 +
<center>[[Image:3.16.1.png]]</center>
 +
 +
解答:编译器和环境的问题
 +
<center>[[Image:3.16.2.png]]</center>
 +
<center>[[Image:3.16.3.png]]</center>
 +
 +
<li>问题十七</li>
 +
自己移植的驱动启动起来的屏幕颜色和原来emmc里面内核启动起来的屏幕色彩上面不一样
 +
 +
解答:可能是老驱动,mipi会有色差
 +
 +
<li>问题十八</li>
 +
屏幕移植好了以后有灰底
 +
 +
解答:用网盘里最新的st7701驱动;<br>
 +
目录:02-程序源码\04-Linux系统移植\04-移植相关文件\02-Linux内核移植
 +
 +
<li>问题十九</li>
 +
OpenSTlinux系统怎么修改系统时间
 +
 +
解答:https://www.cnblogs.com/suiyueshentou/p/7798340.html<br>
 +
可参考这个
 +
 +
<li>问题二十</li>
 +
配置busybox少个文件
 +
<center>[[Image:3.20.1.png]]</center>
 +
<center>[[Image:3.20.2.png]]</center>
 +
 +
解答:把以下工具安装一下
 +
<center>[[Image:3.20.3.png]]</center>
 +
 +
<li>问题二十一</li>
 +
通过st-link,下载裸机程序到A7上跑可以吗
 +
 +
解答:需要借助openOCD
 +
 +
<li>问题二十二</li>
 +
无法从主机上复制到linux上,是因为vmtools的问题吗
 +
 +
解答:很大概率是vmtools的问题
 +
 +
<li>问题二十三</li>
 +
在Yocto构建系统时出现以下错误
 +
<center>[[Image:3.23.1.png]]</center>
 +
 +
解答:运行bitbake -c cleansstate gcc-cross_9.3
 +
 +
<li>问题二十四</li>
 +
basic 配置下,这个sdb2 是不是没有用啊,sdb1应该是TFA的位置,现在直接用uboot 的 第一阶段替代了,那岂不是就直接从sdb3 加载uboot img 了
 +
<center>[[Image:3.24.1.png]]</center>
 +
 +
解答:sdb2是备用分区
 +
<li>问题二十五</li>
 +
TFTP启动内核
 +
 +
解答:
 +
<ol>
 +
<li>设置虚拟机</li>
 +
*确认虚拟机中的TFTP服务工作正常
 +
*网路设置
 +
1)在虚拟机中设置静态IP地址,这里设置为192.168.100.240
 +
sudo vi /etc/network/interfaces
 +
<font color="#F00">
 +
auto ens33<br>
 +
iface ens33 inet static<br>
 +
address 192.168.100.240<br>
 +
netmask 255.255.255.0<br>
 +
gateway 192.168.100.1<br>
 +
dns-nameserver 192.168.100.1
 +
</font>
 +
 +
2)将VMware网卡桥接到有线网卡
 +
<center>[[Image:3.25.1.png]]</center>
 +
 +
<li>设置开发板环境变量</li>
 +
*设置ipaddr
 +
ipaddr的设置需要和虚拟机的ip地址在同一网段,这里是<font color="#F00">192.168.100.0/24</font>
 +
env set ipaddr 192.168.100.252
 +
*设置serverip
 +
serverip设置为虚拟机的ip地址<font color="#F00">192.168.100.240</font>
 +
env set serverip 192.168.100.240
 +
*设置bootargs
 +
 +
setenv bootargs root=/dev/mmcblk2p4 rootwait rw console=ttySTM0,115200
 +
 +
这里/dev/mmcblk2p4为文件系统所在分区,也可以使用UUID来代替PARTUUID=491f6117-415d-4f53-88c9-6e0de54deac6
 +
*保存环境变量
 +
env save
 +
<li>下载内核及设备树</li>
 +
*将内核设备树放在tftp工作目录,这里为/tftpboot
 +
*下内核文件
 +
tftp 0xc2000000 uImage
 +
*下载设备树文件
 +
tftp 0xc1000000 stm32mp157a-fsmp1a.dtb
 +
 +
<li>启动内核</li>
 +
上一步骤已经将uImage放在内存的0xc2000000地址处,stm32mp157a-fsmp1a.dtb放在内存的0xc1000000地址处,下面就可以使用bootm启动内核了。
 +
bootm 0xc2000000 - 0xc1000000
 +
</ol>
 +
<li>问题二十六</li>
 +
利用Yocto进行构建系统是不是就可以不用编译u-boot linux 内核呢,可不可以自己进行烧写u-boot zImage而不是用Yocto make好的镜像进行烧录<br>
 +
解答:这部分可以参考实验教程源码编译部分
 +
 +
<li>问题二十七</li>
 +
可以不使用yocoto吗,想自己移植ubuntu系统<br>
 +
解答:可以,网盘中有移植好的ubuntu,直接烧录镜像就可以
 +
 +
<li>问题二十八</li>
 +
linux源码编译 导入配置文件时,提示gcc: not found
 +
 +
<center>[[Image:系统移植-28-1.png]]</center><br>
 +
 +
解答:主机的gcc没有安装
 +
</ol>
 +
==Linux驱动开发==
 +
<ol>
 +
<li>问题一</li>
 +
在开发板挂载ubuntu的nfs,如何操作
 +
 +
解答:开发教程里的84.1安装NFS服务器章节
 +
 +
<center>[[Image:驱动开发1-1.png]]</center>
 +
 +
<li>问题二</li>
 +
以tftp方式下载uImage和dtb,以及nfs挂载rootfs方式,启动进入系统。连接7寸屏,可以对屏幕进行操作吗
 +
 +
解答:提供的NFS挂载的rootfs没有LCD相关的程序
 +
 +
<li>问题三</li>
 +
设备树带extended和不带有什么不同吗
 +
 +
解答:extended表示支持扩展板
 +
</ol>
 +
 +
==QT相关问题==
 +
<ol>
 +
<li>问题一</li><br>
 +
 +
<center>[[Image:QT-1-1.png|660px]]</center><br>
 +
<center>[[Image:QT-1-2.png|660px]]</center><br>
 +
<center>[[Image:QT-1-3.png|660px]]</center><br>
 +
配置QT环境的时候报错,这是什么原因<br>
 +
 +
解答:先连接后下载<br>
 +
 +
问题:先连接后下载后出现如下错误<br>
 +
<center>[[Image:QT-1-4.png|660px]]</center><br>
 +
 +
解答:这个是因为java版本不对,按照a7环境安装章节错误处理部分换一下版本就行了<br>
 +
<center>[[Image:QT-1-5.png|660px]]</center><br>
  
 
</ol>
 
</ol>
  
 
==关于资料的问题==
 
==关于资料的问题==
 +
<ol>
 +
<li>问题一</li>
 +
点亮灯的程序在哪一部分
 +
 +
解答:在文档中的第12、13章节
 +
<center>[[Image:4.1.1.png]]</center>
 +
 +
<li>问题二</li>
 +
有没有QT控制开发板发脉冲的资料,怎么用程序把二者联系起来的,纯PWM可以用单片机做出来,也可以自由的调脉宽和频率。但是在Linux下用QT控制PWM和IO接口,不知道怎么用程序把它们联系起来
 +
 +
解答:开发板发出脉冲主要是通过修改PWM timer,咱们的蜂鸣器、马达和风扇都是类似的程序,比如风扇就是调节占空比实现的,如果只是需要修改占空比,用风扇的程序就行,如果需要即修改频率有要修改占空比,内核中没有这类型的驱动,需要修改下驱动;需要写个驱动,我们这边最近会做一个类似的驱动
 +
 +
<li>问题三</li>
 +
FS-MP1A上面的屏幕连接线  排线规格  (7寸屏)
 +
 +
解答:摄像头是24pin屏幕是40pin间距都是0.5
 +
</ol>
 +
 
==硬件相关==
 
==硬件相关==
 +
<ol>
 +
<li>问题一</li>
 +
三个旋钮怎么调
 +
<center>[[Image:5.1.1.png|440px]]</center>
 +
 +
解答:<br>
 +
1)这个旋钮是调电压值,当用ADC采集电压的话,旋转它电压会变化
 +
<center>[[Image:5.1.2.png|440px]]</center>
 +
2)这个旋钮是调这个光电闸的,它可以控制LD5灯的亮灭
 +
<center>[[Image:5.1.3.png|440px]]</center>
 +
3)这个旋钮是调人体红外的,动它可以控制LD3灯的亮灭
 +
<center>[[Image:5.1.4.png|440px]]</center>
 +
板子上电后LD4会一直亮着
 +
 +
<li>问题二</li>
 +
数码管小数点对应的码值是多少
 +
<center>[[Image:硬件-2-1.png]]</center>
 +
 +
解答:单一个小数点的话码值是80
 +
 +
<li>问题三</li>
 +
为什么没有can0模块
 +
 +
解答:can只在扩展板留了接口,没有相关模块
 +
</ol>

2021年5月15日 (六) 16:08的最新版本

关于开发环境的问题

  1. 问题一
  2. 关于st-stm32cubeide软件安装的问题,安装软件出现错误

    1-1.jpg

    解答:1)重新下载文件看下;

    2)如果还是不可以,在网盘资料找以下文件
    1-1-2-(1).png
  3. 问题二
  4. SDK安装

    2.1.png

    这个只能在虚拟系统安装吗

    解答:是的,只能在虚拟系统安装

  5. 问题三
  6. 配置图形之前出现了以下提示:

    3.1.png

    之后执行了sudo apt-get install libncurses5-dev可以进行图形配置,但是过了一会又不能进行配置了。

    解答:最好把4.5章节的工具都安装一下

    3.2.png
  7. 问题四
  8. 图形化配置出现如下错误

    4.1.png

    解答:界面太小不能显示,界面最小需要19行80列,所以最大化界面即可解决问题

  9. 问题五
  10. 执行make menuconfig,总是缺少ncrse library ,可是安装ncurses 又出现错误,出现:Unable to locate package ncurses-devel

    5.1.png

    解答:make clean一下,make有缓存了

  11. 问题六
  12. 没有导入SDK

    6.1.png

    解答:类似的错误一般是编译工具使用不正确 重新编译时 可以先 make clean下 然后导入环境变量 再make导入

  13. 问题七
  14. 下载程序到板子上,卡在23rootfs,读文件错误

    7.1.png

    解答:需要安装64bit java,如果已经安装了32bit的需要先卸载。然后安装64bit。最后再重新安装一下烧录软件。
    需要64位的,群文件里有(32位的不可以)

    7.2.png
  15. 问题八
  16. 切换root用户问题

    解答:建议使用su root进行切换;如果su root提示需要使用密码,则可以用sudo passwd root设置密码,然后使用su root,再输入我们设置的密码就可以完成用户切换了

  17. 问题九
  18. 共享文件夹找不到

    解答:重新装一下,然后重启,重新设置文件共享;如果还不可以,可以尝试直接复制进ubuntu主机中

  19. 问题十
  20. SDK工具链安装问题
    执行st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1-openstlinux-5.4-dunfell-mp1-20-06-24.sh安装脚本

    解答:命令需在以下目录进行

    10.1.png
  21. 问题十一
  22. 安装不了 net-tools

    解答:如果使用的是我们提供的vmware不需要安装,可以根据下图步骤尝试

    1.11.1.png
  23. 问题十二
  24. LCD模组选择出现问题

    解答:需要连接电脑和串口,然后运行XShell,创建新的会话
    连接成功后出现下图所示

    12.1.png

    运行到这里时,先按任意键暂停(运行的太快可能会错过,所以可以先暂停)然后输入对应的数字(需要删除之前按任意键输入的字符)

    12.2.png

    如果出现下图所示,说明程序已经运行完了,如果需要重新运行,断电重连即可

    12.3.png
  25. 问题十三
  26. 板子与屏幕连接方式

    解答:板子与屏幕连接排线为下触的,不要接反了

  27. 问题十四
  28. WIFI连接

    14.1.png

    解答:注意输入wifi名称时不要输错,否则可能无法连接

  29. 问题十五
  30. yocto构建文件系统失败

    15.1.png

    解答:

    15.2.png

    这里是连接超时了,因为国内连接github不是特别稳定
    把以下文件放在fs-mp1a/fsmp1a-ST-Yocto/downloads/git2目录下(文件可在群文件里找到)

    15.3.png

    把以下文件在fs-mp1a/fsmp1a-ST-Yocto/downloads/git2这个目录解压缩(文件可在群文件里找到)

    15.4.png
  31. 问题十六
  32. 板子上的ubuntu18.04启动选项在哪里修改

    解答:首先执行 sudo mount /dev/mmcblk1p4 /mnt
    然后执行 sudo vi /mnt/mmc0_extlinux/stm32mp157a-fsmp1a_extlinux.conf 在这个文件中修改DEFAULT

  33. 问题十七
  34. Ubuntu版本问题

    解答:我们的环境都是基于18.04搭建的,建议使用18的,18和20有很多不兼容的地方

  35. 问题十八
  36. 开发板如何支持U盘 exfat格式和NTFS格式,现在是5.4内核应该是支持的,但是挂载不上去。

    解答:用mount命令

  37. 问题十九
  38. FSMP1可以跑cuda吗

    解答:跑不了

  39. 问题二十
  40. 使用sd卡启动ubuntu镜像之后,然后在里面下载文件,是存到emmc里还是sd卡里呢

    解答:存到了sdcard下了

  41. 问题二十一
  42. 建立的Ubuntu虚拟机分配内存小了,不重新装的情况下有办法再次分配吗

    解答:直接加大就可以

  43. 问题二十二
  44. 想要烧emmc ubuntu烧不上,用sdcard可以

    解答:Ubuntu不支持emmc烧录

  45. 问题二十三
  46. 按照教程无法安装pip该怎么办

    1-23-1.png

    解答:用这个带ai的镜像

    1-23-2.png
  47. 问题二十四
  48. 开发板摄像头视频采集的videopath是什么

    解答:一般是dev下的video0

关于ARM的问题

  1. 问题一
  2. STlink插进去,“!”也没有

    解答:安装下烧录工具

    ARM-1-1.png

  3. 问题二
  4. 调试cortex-m4/3_exti的工程

    ARM-2-1.png

    这个回调在main里面的什么地方调用

    解答:回调函数是在发生中断后调用,具体在哪个文件中可以ctrl+F直接搜索查看。

  5. 问题三
  6. 给的TIM工程中,如何设置cpu主频和中断周期
    解答:这两个参数可以设置中断周期,这里设置的时间间隔1秒钟

    ARM-3-1.png

    主频可以在这个地方修改

    ARM-3-2.png

    例:将M4的CPU主频设置为120MHz
    将这两个地方都设置成120

    ARM-3-3.png

  7. 问题四
  8. M4 uart课程编译下载调试程序都可以,电脑端收不到printf的内容,发送的1234没有反应
    电脑端串口助手设置的属性如下 115200,8,1,n

    解答:
    1、检查电脑串口配置有没有问题,源码实现的功能发送五个字符,然后可以接受五个字符
    2、检查最开始的一行字符串 UART TEST有显示吗,如果Printf没有显示可能是串口没连上,检查一下串口电脑配置,或者连接有没有问题

  9. 问题五
  10. 做A7与M4通信时出现M4断点无法生效,在main一开始设置的断点
    解答:
    一开始进入debug模式就默认开始运行了,它会直接运行到while循环里,所以在while外设置断点是看不到效果的
    可以在while循环里第一句设置断点看一下效果

  11. 问题六
  12. 双核通信的时候怎么动态分配硬件资源
    解答:
    这个是设备树配置好的,参考开发教程 扩展板CAN总线驱动移植章节 设备树相关配置

  13. 问题七
  14. M4可以访问外部的ddr ram(显示数据随机存储器)吗

    解答:这部分例程暂时没有

  15. 问题八
  16. M4和A7双核通信的实验,在ubuntu18下接板子usb otg后没有反应,weston-openst linux下可以正常用,请问可能是什么原因呢?(不是RNDIS读不出来,是usb就没有读到)另外ubuntu下以太网也连不起。是缺少驱动吗?该下哪个版本的?

    解答:ubuntu中otg没有做支持,可以使用有线网卡做传输

  17. 问题九
  18. 这个要怎么勾选,在stm32cubeide里,做debug configuration

    2-9-1.png

    解答:把7.1换成实际网段ip
    可以参考这个看下,ubuntu下的多核我们这边也没有测试过,驱动都是配置了的
    https://wiki.stmicroelectronics.cn/stm32mpu/wiki/STM32CubeMP1_Package#STM32CubeMP1_package_overview

  19. 问题十
  20. 这个m4 有个LED点亮的程序,现在程序可以在开发板上运行,但是开发板重新上电就不运行了,这是什么原因

    解答:这个是下完程序,每次断电以后,下进去的程序就清除了,所以重新上电以后就不会继续运行的

关于uboot移植的问题

  1. 问题一
  2. 编译出来的u-boot.stm32,通过USB Image tool烧写,不能启动;u-boot.stm32是不是可以直接复制到TF卡,直接启动

    解答:u-boot.stm32是要通过ubuntu下的dd命令来下载的。不能通过USB Image tool烧写

  3. 问题二
  4. 怎么通过TF卡直接启动u-boot

    解答:把u-boot放到SD卡

  5. 问题三
  6. 把板子设置为SD卡启动,怎么跑不起来,光跑uboot

    解答:

    2.3.1.png

    把以上章节做一下,然后做以下步骤

    2.3.2.png
  7. 问题四
  8. 从uboot中选着设备树和uImage启动内核,先用ext4load 加载再启动?加载地址是多少?

    解答:

    2.4.1.png
  9. 问题五
  10. TF卡分区失败

    2.5.1.png

    解答:重新执行以下命令

    2.5.2.png
  11. 问题六
  12. u-boot源码编译不通过,文档24.4.3

    2.6.1.png

    解答:可能是由于没有导入交叉编译工具链,每次都需要重新导入交叉编译工具链

  13. 问题七
  14. uboot移植,文档24.4.4,编译出错,错误如下图所示

    2.7.1.png

    解答:没有导入交叉编译工具链

  15. 问题八
  16. 安装文档手册上移植u-boot的方法。出现找不到mmc1_extlinux/extlinux.conf 文件

    2.8.1.png

    解答:env default -a一下
    然后 env save
    最后再重新设置一下环境变量

  17. 问题九
  18. Yocto编译环境如何clean up
    bitbake 不能使用了

    解答:执行 bitbake的时候,不要导入sdk

  19. 问题十
  20. 在编译uboot的时候出现的这个问题
    cc1: error: bad value (‘generic-armv7-a’) for ‘-mtune=’ switch

    解答:编译前导入一下交叉编译工具

  21. 问题十一
  22. M4的程序必须是A7启动linux后再加载M4的程序吗

    解答:
    对的,uboot下也可以,uboot加载目前没有例子,可以从st官方wiki查一下

  23. 问题十二
  24. Uboot-12-1.png

    做u-boot源码编译的时候出现如下问题

    Uboot-12-2.png

    解答:先导入sdk

关于系统移植的问题

  1. 问题一
  2. 这个stm32cubeprog烧写文件,有个.TVS格式文件

    3.1.1.png

    用txt打开,里面是这些内容,这是什么意思

    解答:uImage和dts被打包到rootfs里了;dts和uImage是在bootfs这个镜像中,bootfs这个镜像最终会在系统启动之后被挂载到rootfs这个镜像中的boot文件夹下。

  3. 问题二
  4. 为什么有重复烧写的,哪个是uImage,哪个是dts,哪个是rootfs,哪个是u-boot

    3.1.1.png

    解答:重复烧录的是fsbl1和fsbl2

  5. 问题三
  6. 除了uboot和这个23序号文件,其他序号的文件可以不要吗

    3.1.1.png

    解答:不可以

  7. 问题四
  8. fsbl1和fsbl2是什么

    3.1.1.png

    解答:fsbl1用于存放tf-a的镜像,fsbl2是tf-a的备份分区

  9. 问题五
  10. 如果做整套移植,需要更换里面哪些文件

    3.1.1.png

    解答:

    3.5.2.png

    这些是需要移植的,其它的根据实际的需求决定

  11. 问题六
  12. 这一步没出现YACC和LEX两项是怎么回事

    3.6.1.png

    3.6.2.png

    解答:先看下scripts/kconfig目录下有没有这三个文件,如果有的话就是已经做过LEX和YACC了 Makefile不会根据时间戳决定要不要重新做这件事情

    3.6.3.png

  13. 问题七
  14. 文档21.6章节Yocto构建系统,导入编译配置出现以下错误

    3.7.3.png

    3.7.2.png

    解答:重新执行导入编译配置命令,出现一个许可声明

    3.7.3.png

    或者执行完命令后,直接出现许可声明

    同意即可进行下一步

  15. 问题八
  16. 镜像烧写,没有看到”USB1”端口

    3.8.1.png

    解答:将开发板重新上电或者按开发板的复位按钮,之后点击Port后的“刷新”按钮。
    如果还不可以,就重启

  17. 问题九
  18. 检测不到usb

    3.9.1.png

    解答:
    1)看拨码开关是否拨对了
    2)虚拟机是否开着
    3)安装的是不是linux版的烧写工具,看linux下是否识别到usb设备
    4)看windows下是否可以检测到,如果可以检测到,说明linux下驱动没有安装好
    5)缺少的那个驱动应该是在安装STM32CubeProgrammer这个软件的时候安装的
    6)重新安装时没有驱动安装提醒应该怎么办
    这个可能需要看下st官方的文档,看下linux安装需要注意些什么

  19. 问题十
  20. Trusted Firmware-A 移植,固件烧写速度太快,烧写不成功

    3.10.1.png

    解答:速度太快没有烧写成功,

    3.10.2.png

    自动创建了一个sdb3,需要把sdb3删除(把设备弹出,然后用sudo 权限rm删除),然后重新执行sudo dd if=u-boot-stm32mp157a-fsmp1a-trusted.stm32 of=/dev/sdb3 conv=fdatasync

  21. 问题十一
  22. IP设的没问题

    3.11.1.png

    Ping不通

    3.11.2.png

    解答:可能没有安装tftp的服务器和基础包

  23. 问题十二
  24. 蓝牙驱动移植,开启蓝牙设备时显示没有找到设备

    解答:可能是没有更新设备树

  25. 问题十三
  26. Ubuntu18.04镜像烧录问题

    解答:ubuntu只能通过tf卡烧录

  27. 问题十四
  28. 在使用ubuntu系统遇到一个问题,在编译内核文件之后,通过tftp方式更新内核,然后启动系统,这样是可以看到新的内核文件,但是重启系统后,这个内核文件就看不到了。尝试用scp的方式更新内核,但是一直没有成功。这个问题怎么解决。

    解答:
    首先执行 sudo mount /dev/mmcblk1p4 /mnt
    然后mnt目录里就能看到了
    每次重启后都需要挂载(执行 sudo mount /dev/mmcblk1p4 /mnt)

  29. 问题十五
  30. 编译内核报错

    3.15.1.png

    解答:按照linux开发工具安装章节,把所有的工具都安装下。
    这个是缺少一个依赖包导致的

    3.15.2.png
  31. 问题十六
  32. 编译内核报错

    3.16.1.png

    解答:编译器和环境的问题

    3.16.2.png
    3.16.3.png
  33. 问题十七
  34. 自己移植的驱动启动起来的屏幕颜色和原来emmc里面内核启动起来的屏幕色彩上面不一样

    解答:可能是老驱动,mipi会有色差

  35. 问题十八
  36. 屏幕移植好了以后有灰底

    解答:用网盘里最新的st7701驱动;
    目录:02-程序源码\04-Linux系统移植\04-移植相关文件\02-Linux内核移植

  37. 问题十九
  38. OpenSTlinux系统怎么修改系统时间

    解答:https://www.cnblogs.com/suiyueshentou/p/7798340.html
    可参考这个

  39. 问题二十
  40. 配置busybox少个文件

    3.20.1.png
    3.20.2.png

    解答:把以下工具安装一下

    3.20.3.png
  41. 问题二十一
  42. 通过st-link,下载裸机程序到A7上跑可以吗

    解答:需要借助openOCD

  43. 问题二十二
  44. 无法从主机上复制到linux上,是因为vmtools的问题吗

    解答:很大概率是vmtools的问题

  45. 问题二十三
  46. 在Yocto构建系统时出现以下错误

    3.23.1.png

    解答:运行bitbake -c cleansstate gcc-cross_9.3

  47. 问题二十四
  48. basic 配置下,这个sdb2 是不是没有用啊,sdb1应该是TFA的位置,现在直接用uboot 的 第一阶段替代了,那岂不是就直接从sdb3 加载uboot img 了

    3.24.1.png

    解答:sdb2是备用分区

  49. 问题二十五
  50. TFTP启动内核

    解答:

    1. 设置虚拟机
      • 确认虚拟机中的TFTP服务工作正常
      • 网路设置

      1)在虚拟机中设置静态IP地址,这里设置为192.168.100.240

      sudo vi /etc/network/interfaces
      

      auto ens33
      iface ens33 inet static
      address 192.168.100.240
      netmask 255.255.255.0
      gateway 192.168.100.1
      dns-nameserver 192.168.100.1

      2)将VMware网卡桥接到有线网卡

      3.25.1.png
    2. 设置开发板环境变量
      • 设置ipaddr

      ipaddr的设置需要和虚拟机的ip地址在同一网段,这里是192.168.100.0/24

      env set ipaddr 192.168.100.252
      
      • 设置serverip

      serverip设置为虚拟机的ip地址192.168.100.240

      env set serverip 192.168.100.240
      
      • 设置bootargs

      setenv bootargs root=/dev/mmcblk2p4 rootwait rw console=ttySTM0,115200

      这里/dev/mmcblk2p4为文件系统所在分区,也可以使用UUID来代替PARTUUID=491f6117-415d-4f53-88c9-6e0de54deac6

      • 保存环境变量
      env save
      
    3. 下载内核及设备树
      • 将内核设备树放在tftp工作目录,这里为/tftpboot
      • 下内核文件
      tftp 0xc2000000 uImage
      
      • 下载设备树文件
      tftp 0xc1000000 stm32mp157a-fsmp1a.dtb
      
    4. 启动内核
    5. 上一步骤已经将uImage放在内存的0xc2000000地址处,stm32mp157a-fsmp1a.dtb放在内存的0xc1000000地址处,下面就可以使用bootm启动内核了。

      bootm 0xc2000000 - 0xc1000000
      
  51. 问题二十六
  52. 利用Yocto进行构建系统是不是就可以不用编译u-boot linux 内核呢,可不可以自己进行烧写u-boot zImage而不是用Yocto make好的镜像进行烧录
    解答:这部分可以参考实验教程源码编译部分

  53. 问题二十七
  54. 可以不使用yocoto吗,想自己移植ubuntu系统
    解答:可以,网盘中有移植好的ubuntu,直接烧录镜像就可以

  55. 问题二十八
  56. linux源码编译 导入配置文件时,提示gcc: not found

    系统移植-28-1.png

    解答:主机的gcc没有安装

Linux驱动开发

  1. 问题一
  2. 在开发板挂载ubuntu的nfs,如何操作

    解答:开发教程里的84.1安装NFS服务器章节

    驱动开发1-1.png
  3. 问题二
  4. 以tftp方式下载uImage和dtb,以及nfs挂载rootfs方式,启动进入系统。连接7寸屏,可以对屏幕进行操作吗

    解答:提供的NFS挂载的rootfs没有LCD相关的程序

  5. 问题三
  6. 设备树带extended和不带有什么不同吗

    解答:extended表示支持扩展板

QT相关问题

  1. 问题一

  2. QT-1-1.png

    QT-1-2.png

    QT-1-3.png

    配置QT环境的时候报错,这是什么原因

    解答:先连接后下载

    问题:先连接后下载后出现如下错误

    QT-1-4.png

    解答:这个是因为java版本不对,按照a7环境安装章节错误处理部分换一下版本就行了

    QT-1-5.png

关于资料的问题

  1. 问题一
  2. 点亮灯的程序在哪一部分

    解答:在文档中的第12、13章节

    4.1.1.png
  3. 问题二
  4. 有没有QT控制开发板发脉冲的资料,怎么用程序把二者联系起来的,纯PWM可以用单片机做出来,也可以自由的调脉宽和频率。但是在Linux下用QT控制PWM和IO接口,不知道怎么用程序把它们联系起来

    解答:开发板发出脉冲主要是通过修改PWM timer,咱们的蜂鸣器、马达和风扇都是类似的程序,比如风扇就是调节占空比实现的,如果只是需要修改占空比,用风扇的程序就行,如果需要即修改频率有要修改占空比,内核中没有这类型的驱动,需要修改下驱动;需要写个驱动,我们这边最近会做一个类似的驱动

  5. 问题三
  6. FS-MP1A上面的屏幕连接线 排线规格 (7寸屏)

    解答:摄像头是24pin屏幕是40pin间距都是0.5

硬件相关

  1. 问题一
  2. 三个旋钮怎么调

    5.1.1.png

    解答:
    1)这个旋钮是调电压值,当用ADC采集电压的话,旋转它电压会变化

    5.1.2.png

    2)这个旋钮是调这个光电闸的,它可以控制LD5灯的亮灭

    5.1.3.png

    3)这个旋钮是调人体红外的,动它可以控制LD3灯的亮灭

    5.1.4.png

    板子上电后LD4会一直亮着

  3. 问题二
  4. 数码管小数点对应的码值是多少

    硬件-2-1.png

    解答:单一个小数点的话码值是80

  5. 问题三
  6. 为什么没有can0模块

    解答:can只在扩展板留了接口,没有相关模块