“FS-MP1A问题集锦”的版本间的差异
(→关于开发环境的问题) |
(→硬件相关) |
||
(未显示同一用户的42个中间版本) | |||
第7行: | 第7行: | ||
解答:1)重新下载文件看下; | 解答:1)重新下载文件看下; | ||
− | :: | + | ::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 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> | ||
==关于uboot移植的问题== | ==关于uboot移植的问题== | ||
− | = | + | <ol> |
+ | <li>问题一</li> | ||
+ | 编译出来的u-boot.stm32,通过USB Image tool烧写,不能启动;u-boot.stm32是不是可以直接复制到TF卡,直接启动 | ||
+ | |||
+ | 解答:u-boot.stm32是要通过ubuntu下的dd命令来下载的。不能通过USB Image tool烧写 | ||
+ | |||
+ | <li>问题二</li> | ||
+ | 怎么通过TF卡直接启动u-boot | ||
+ | |||
+ | 解答:把u-boot放到SD卡 | ||
+ | |||
+ | <li>问题三</li> | ||
+ | 把板子设置为SD卡启动,怎么跑不起来,光跑uboot | ||
+ | |||
+ | 解答: | ||
+ | <center>[[Image:2.3.1.png]]</center> | ||
+ | 把以上章节做一下,然后做以下步骤 | ||
+ | <center>[[Image:2.3.2.png]]</center> | ||
+ | |||
+ | <li>问题四</li> | ||
+ | 从uboot中选着设备树和uImage启动内核,先用ext4load 加载再启动?加载地址是多少? | ||
+ | |||
+ | 解答: | ||
+ | <center>[[Image:2.4.1.png]]</center> | ||
+ | |||
+ | <li>问题五</li> | ||
+ | TF卡分区失败 | ||
+ | <center>[[Image:2.5.1.png]]</center> | ||
+ | |||
+ | 解答:重新执行以下命令 | ||
+ | <center>[[Image:2.5.2.png]]</center> | ||
+ | |||
+ | <li>问题六</li> | ||
+ | u-boot源码编译不通过,文档24.4.3 | ||
+ | <center>[[Image:2.6.1.png]]</center> | ||
+ | 解答:可能是由于没有导入交叉编译工具链,每次都需要重新导入交叉编译工具链 | ||
+ | |||
+ | <li>问题七</li> | ||
+ | uboot移植,文档24.4.4,编译出错,错误如下图所示 | ||
+ | |||
+ | <center>[[Image:2.7.1.png]]</center> | ||
+ | 解答:没有导入交叉编译工具链 | ||
+ | |||
+ | <li>问题八</li> | ||
+ | 安装文档手册上移植u-boot的方法。出现找不到mmc1_extlinux/extlinux.conf 文件 | ||
+ | <center>[[Image:2.8.1.png]]</center> | ||
+ | |||
+ | 解答:env default -a一下<br> | ||
+ | 然后 env save<br> | ||
+ | 最后再重新设置一下环境变量<br> | ||
+ | |||
+ | <li>问题九</li> | ||
+ | Yocto编译环境如何clean up<br> | ||
+ | bitbake 不能使用了 | ||
+ | |||
+ | 解答:执行 bitbake的时候,不要导入sdk | ||
+ | <li>问题十</li> | ||
+ | 在编译uboot的时候出现的这个问题<br> | ||
+ | cc1: error: bad value (‘generic-armv7-a’) for ‘-mtune=’ switch | ||
+ | |||
+ | 解答:编译前导入一下交叉编译工具 | ||
+ | |||
+ | <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> | ||
+ | <li>问题一</li> | ||
+ | 这个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> | ||
+ | <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的最新版本
关于开发环境的问题
- 问题一
- 2)如果还是不可以,在网盘资料找以下文件
- 问题二
- 问题三
- 问题四
- 问题五
- 问题六
- 问题七
- 问题八
- 问题九
- 问题十
- 问题十一
- 问题十二
- 问题十三
- 问题十四
- 问题十五
- 问题十六
- 问题十七
- 问题十八
- 问题十九
- 问题二十
- 问题二十一
- 问题二十二
- 问题二十三
- 问题二十四
关于st-stm32cubeide软件安装的问题,安装软件出现错误

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

SDK安装

这个只能在虚拟系统安装吗
解答:是的,只能在虚拟系统安装
配置图形之前出现了以下提示:

之后执行了sudo apt-get install libncurses5-dev可以进行图形配置,但是过了一会又不能进行配置了。
解答:最好把4.5章节的工具都安装一下

图形化配置出现如下错误

解答:界面太小不能显示,界面最小需要19行80列,所以最大化界面即可解决问题
执行make menuconfig,总是缺少ncrse library ,可是安装ncurses 又出现错误,出现:Unable to locate package ncurses-devel

解答:make clean一下,make有缓存了
没有导入SDK

解答:类似的错误一般是编译工具使用不正确 重新编译时 可以先 make clean下 然后导入环境变量 再make导入
下载程序到板子上,卡在23rootfs,读文件错误

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

切换root用户问题
解答:建议使用su root进行切换;如果su root提示需要使用密码,则可以用sudo passwd root设置密码,然后使用su root,再输入我们设置的密码就可以完成用户切换了
共享文件夹找不到
解答:重新装一下,然后重启,重新设置文件共享;如果还不可以,可以尝试直接复制进ubuntu主机中
SDK工具链安装问题
执行st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1-openstlinux-5.4-dunfell-mp1-20-06-24.sh安装脚本
解答:命令需在以下目录进行

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

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

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

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

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

解答:注意输入wifi名称时不要输错,否则可能无法连接
yocto构建文件系统失败

解答:

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

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

板子上的ubuntu18.04启动选项在哪里修改
解答:首先执行 sudo mount /dev/mmcblk1p4 /mnt
然后执行 sudo vi /mnt/mmc0_extlinux/stm32mp157a-fsmp1a_extlinux.conf
在这个文件中修改DEFAULT
Ubuntu版本问题
解答:我们的环境都是基于18.04搭建的,建议使用18的,18和20有很多不兼容的地方
开发板如何支持U盘 exfat格式和NTFS格式,现在是5.4内核应该是支持的,但是挂载不上去。
解答:用mount命令
FSMP1可以跑cuda吗
解答:跑不了
使用sd卡启动ubuntu镜像之后,然后在里面下载文件,是存到emmc里还是sd卡里呢
解答:存到了sdcard下了
建立的Ubuntu虚拟机分配内存小了,不重新装的情况下有办法再次分配吗
解答:直接加大就可以
想要烧emmc ubuntu烧不上,用sdcard可以
解答:Ubuntu不支持emmc烧录
按照教程无法安装pip该怎么办

解答:用这个带ai的镜像

开发板摄像头视频采集的videopath是什么
解答:一般是dev下的video0
关于ARM的问题
- 问题一
- 问题二
- 问题三
- 问题四
- 问题五
- 问题六
- 问题七
- 问题八
- 问题九
- 问题十
STlink插进去,“!”也没有
解答:安装下烧录工具

调试cortex-m4/3_exti的工程

这个回调在main里面的什么地方调用
解答:回调函数是在发生中断后调用,具体在哪个文件中可以ctrl+F直接搜索查看。
给的TIM工程中,如何设置cpu主频和中断周期
解答:这两个参数可以设置中断周期,这里设置的时间间隔1秒钟

主频可以在这个地方修改

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

M4 uart课程编译下载调试程序都可以,电脑端收不到printf的内容,发送的1234没有反应
电脑端串口助手设置的属性如下 115200,8,1,n
解答:
1、检查电脑串口配置有没有问题,源码实现的功能发送五个字符,然后可以接受五个字符
2、检查最开始的一行字符串 UART TEST有显示吗,如果Printf没有显示可能是串口没连上,检查一下串口电脑配置,或者连接有没有问题
做A7与M4通信时出现M4断点无法生效,在main一开始设置的断点
解答:
一开始进入debug模式就默认开始运行了,它会直接运行到while循环里,所以在while外设置断点是看不到效果的
可以在while循环里第一句设置断点看一下效果
双核通信的时候怎么动态分配硬件资源
解答:
这个是设备树配置好的,参考开发教程 扩展板CAN总线驱动移植章节 设备树相关配置
M4可以访问外部的ddr ram(显示数据随机存储器)吗
解答:这部分例程暂时没有
M4和A7双核通信的实验,在ubuntu18下接板子usb otg后没有反应,weston-openst linux下可以正常用,请问可能是什么原因呢?(不是RNDIS读不出来,是usb就没有读到)另外ubuntu下以太网也连不起。是缺少驱动吗?该下哪个版本的?
解答:ubuntu中otg没有做支持,可以使用有线网卡做传输
这个要怎么勾选,在stm32cubeide里,做debug configuration

解答:把7.1换成实际网段ip
可以参考这个看下,ubuntu下的多核我们这边也没有测试过,驱动都是配置了的
https://wiki.stmicroelectronics.cn/stm32mpu/wiki/STM32CubeMP1_Package#STM32CubeMP1_package_overview
这个m4 有个LED点亮的程序,现在程序可以在开发板上运行,但是开发板重新上电就不运行了,这是什么原因
解答:这个是下完程序,每次断电以后,下进去的程序就清除了,所以重新上电以后就不会继续运行的
关于uboot移植的问题
- 问题一
- 问题二
- 问题三
- 问题四
- 问题五
- 问题六
- 问题七
- 问题八
- 问题九
- 问题十
- 问题十一
- 问题十二
编译出来的u-boot.stm32,通过USB Image tool烧写,不能启动;u-boot.stm32是不是可以直接复制到TF卡,直接启动
解答:u-boot.stm32是要通过ubuntu下的dd命令来下载的。不能通过USB Image tool烧写
怎么通过TF卡直接启动u-boot
解答:把u-boot放到SD卡
把板子设置为SD卡启动,怎么跑不起来,光跑uboot
解答:

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

从uboot中选着设备树和uImage启动内核,先用ext4load 加载再启动?加载地址是多少?
解答:

TF卡分区失败

解答:重新执行以下命令

u-boot源码编译不通过,文档24.4.3

解答:可能是由于没有导入交叉编译工具链,每次都需要重新导入交叉编译工具链
uboot移植,文档24.4.4,编译出错,错误如下图所示

解答:没有导入交叉编译工具链
安装文档手册上移植u-boot的方法。出现找不到mmc1_extlinux/extlinux.conf 文件

解答:env default -a一下
然后 env save
最后再重新设置一下环境变量
Yocto编译环境如何clean up
bitbake 不能使用了
解答:执行 bitbake的时候,不要导入sdk
在编译uboot的时候出现的这个问题
cc1: error: bad value (‘generic-armv7-a’) for ‘-mtune=’ switch
解答:编译前导入一下交叉编译工具
M4的程序必须是A7启动linux后再加载M4的程序吗
解答:
对的,uboot下也可以,uboot加载目前没有例子,可以从st官方wiki查一下

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

解答:先导入sdk
关于系统移植的问题
- 问题一
- 问题二
- 问题三
- 问题四
- 问题五
- 问题六
- 问题七
- 问题八
- 问题九
- 问题十
- 问题十一
- 问题十二
- 问题十三
- 问题十四
- 问题十五
- 问题十六
- 问题十七
- 问题十八
- 问题十九
- 问题二十
- 问题二十一
- 问题二十二
- 问题二十三
- 问题二十四
- 问题二十五
- 设置虚拟机
- 确认虚拟机中的TFTP服务工作正常
- 网路设置
- 设置开发板环境变量
- 设置ipaddr
- 设置serverip
- 设置bootargs
- 保存环境变量
- 下载内核及设备树
- 将内核设备树放在tftp工作目录,这里为/tftpboot
- 下内核文件
- 下载设备树文件
- 启动内核
- 问题二十六
- 问题二十七
- 问题二十八
这个stm32cubeprog烧写文件,有个.TVS格式文件

用txt打开,里面是这些内容,这是什么意思
解答:uImage和dts被打包到rootfs里了;dts和uImage是在bootfs这个镜像中,bootfs这个镜像最终会在系统启动之后被挂载到rootfs这个镜像中的boot文件夹下。
为什么有重复烧写的,哪个是uImage,哪个是dts,哪个是rootfs,哪个是u-boot

解答:重复烧录的是fsbl1和fsbl2
除了uboot和这个23序号文件,其他序号的文件可以不要吗

解答:不可以
fsbl1和fsbl2是什么

解答:fsbl1用于存放tf-a的镜像,fsbl2是tf-a的备份分区
如果做整套移植,需要更换里面哪些文件

解答:

这些是需要移植的,其它的根据实际的需求决定
这一步没出现YACC和LEX两项是怎么回事


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

文档21.6章节Yocto构建系统,导入编译配置出现以下错误


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

或者执行完命令后,直接出现许可声明
同意即可进行下一步
镜像烧写,没有看到”USB1”端口

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

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

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

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

Ping不通

解答:可能没有安装tftp的服务器和基础包
蓝牙驱动移植,开启蓝牙设备时显示没有找到设备
解答:可能是没有更新设备树
Ubuntu18.04镜像烧录问题
解答:ubuntu只能通过tf卡烧录
在使用ubuntu系统遇到一个问题,在编译内核文件之后,通过tftp方式更新内核,然后启动系统,这样是可以看到新的内核文件,但是重启系统后,这个内核文件就看不到了。尝试用scp的方式更新内核,但是一直没有成功。这个问题怎么解决。
解答:
首先执行 sudo mount /dev/mmcblk1p4 /mnt
然后mnt目录里就能看到了
每次重启后都需要挂载(执行 sudo mount /dev/mmcblk1p4 /mnt)
编译内核报错

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

编译内核报错

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


自己移植的驱动启动起来的屏幕颜色和原来emmc里面内核启动起来的屏幕色彩上面不一样
解答:可能是老驱动,mipi会有色差
屏幕移植好了以后有灰底
解答:用网盘里最新的st7701驱动;
目录:02-程序源码\04-Linux系统移植\04-移植相关文件\02-Linux内核移植
OpenSTlinux系统怎么修改系统时间
解答:https://www.cnblogs.com/suiyueshentou/p/7798340.html
可参考这个
配置busybox少个文件


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

通过st-link,下载裸机程序到A7上跑可以吗
解答:需要借助openOCD
无法从主机上复制到linux上,是因为vmtools的问题吗
解答:很大概率是vmtools的问题
在Yocto构建系统时出现以下错误

解答:运行bitbake -c cleansstate gcc-cross_9.3
basic 配置下,这个sdb2 是不是没有用啊,sdb1应该是TFA的位置,现在直接用uboot 的 第一阶段替代了,那岂不是就直接从sdb3 加载uboot img 了

解答:sdb2是备用分区
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网卡桥接到有线网卡

ipaddr的设置需要和虚拟机的ip地址在同一网段,这里是192.168.100.0/24
env set ipaddr 192.168.100.252
serverip设置为虚拟机的ip地址192.168.100.240
env set serverip 192.168.100.240
setenv bootargs root=/dev/mmcblk2p4 rootwait rw console=ttySTM0,115200
这里/dev/mmcblk2p4为文件系统所在分区,也可以使用UUID来代替PARTUUID=491f6117-415d-4f53-88c9-6e0de54deac6
env save
tftp 0xc2000000 uImage
tftp 0xc1000000 stm32mp157a-fsmp1a.dtb
上一步骤已经将uImage放在内存的0xc2000000地址处,stm32mp157a-fsmp1a.dtb放在内存的0xc1000000地址处,下面就可以使用bootm启动内核了。
bootm 0xc2000000 - 0xc1000000
利用Yocto进行构建系统是不是就可以不用编译u-boot linux 内核呢,可不可以自己进行烧写u-boot zImage而不是用Yocto make好的镜像进行烧录
解答:这部分可以参考实验教程源码编译部分
可以不使用yocoto吗,想自己移植ubuntu系统
解答:可以,网盘中有移植好的ubuntu,直接烧录镜像就可以
linux源码编译 导入配置文件时,提示gcc: not found

解答:主机的gcc没有安装
Linux驱动开发
- 问题一
- 问题二
- 问题三
在开发板挂载ubuntu的nfs,如何操作
解答:开发教程里的84.1安装NFS服务器章节

以tftp方式下载uImage和dtb,以及nfs挂载rootfs方式,启动进入系统。连接7寸屏,可以对屏幕进行操作吗
解答:提供的NFS挂载的rootfs没有LCD相关的程序
设备树带extended和不带有什么不同吗
解答:extended表示支持扩展板
QT相关问题
关于资料的问题
- 问题一
- 问题二
- 问题三
点亮灯的程序在哪一部分
解答:在文档中的第12、13章节

有没有QT控制开发板发脉冲的资料,怎么用程序把二者联系起来的,纯PWM可以用单片机做出来,也可以自由的调脉宽和频率。但是在Linux下用QT控制PWM和IO接口,不知道怎么用程序把它们联系起来
解答:开发板发出脉冲主要是通过修改PWM timer,咱们的蜂鸣器、马达和风扇都是类似的程序,比如风扇就是调节占空比实现的,如果只是需要修改占空比,用风扇的程序就行,如果需要即修改频率有要修改占空比,内核中没有这类型的驱动,需要修改下驱动;需要写个驱动,我们这边最近会做一个类似的驱动
FS-MP1A上面的屏幕连接线 排线规格 (7寸屏)
解答:摄像头是24pin屏幕是40pin间距都是0.5