现在在uboot2020.10中想使用UART0 的PF2 PF4做串口,但由于些管脚与TF共用。
当勾选 ARM architecture -> [ *] UART0 on MicroSD breakout board 后会出现“board/sunxi/board.c:581:对‘sunxi_mmc_init’未定义的引用”的错误;
如果去掉MMC模块则能正常启动。
但现在我同时想用MMC功能,MMC模块勾选,然后把u-boot-2020.10/drivers/mmc/Kconfig文件中的&& !UART0_PORT_F去掉,编译正常,下载的芯片上运行则出现如上图的结果。
请问怎么改才能正常使用呢?
转自https://blog.csdn.net/cnyyx/article/details/27182833
一、挂载镜像
1、losetup -f #查看哪个loop设备是空闲的
/dev/loop0 #loop0这个设备是空闲的
2、losetup /dev/loop0 /var/lib/libvirt/images/ubuntu.img
3、kpartx -av /dev/loop0
#输出结果如下
add map loop0p1 (253:0): 0 18380800 linear /dev/loop0 2048
add map loop0p2 (253:1): 0 2 linear /dev/loop0 18384894
add map loop0p5 (253:2): 0 2093056 linear /dev/loop0 18384896
4、mkdir /vmdisk
5、mount /dev/mapper/loop0p1 /vmdisk/ #把第一个分区挂载到/vmdisk
这样就可以查看和编辑镜像中的内容了
二、卸载镜像
1、umount /vmdisk
2、kpartx -dv /dev/loop0
#输出如下
del devmap : loop0p5
del devmap : loop0p2
del devmap : loop0p1
3、losetup -d /dev/loop0
注意:使用这个方式只能挂载raw格式镜像,不能处理qcow2格式镜像
如要处理qcow2格式镜像,需要使用qemu-ndb或者guestfs
tools/binman/binman 依赖 python2
#!/usr/bin/env python2 # Copyright (c) 2016 Google, Inc # Written by Simon Glass <sjg@chromium.org> # # SPDX-License-Identifier: GPL-2.0+ # # Creates binary images from input files controlled by a description # """See README for more information""" import os import sys import traceback import unittest
检查你的电脑 python2 能不能运行?
新的是依赖python3了
编译本帖的 u-boot-lichee
# 进行可视化配置 make ARCH=arm menuconfig OK
# 编译 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8 报警如下:
https://whycan.cn/files/members/1815/binman.jpg
./tools/binman/binman: binman.py 文件夹下存在这个文件,难道是内部程序错误?
https://whycan.cn/files/members/1815/binmanFile.jpg
你的这个错误是怎么解决的呢?
我编译u-boot时出现以下错误,请ssp97帮看看是什么问题:
OBJCOPY spl/u-boot-spl-nodtb.bin
SYM spl/u-boot-spl.sym
COPY spl/u-boot-spl.bin
MKSUNXI spl/sunxi-spl.bin
BINMAN all
/bin/sh: 1: ./tools/binman/binman: Permission denied
Makefile:1024: recipe for target 'all' failed
make: *** [all] Error 126
当我把binman改为可执行文件时又了出现以下错误
OBJCOPY spl/u-boot-spl-nodtb.bin
SYM spl/u-boot-spl.sym
COPY spl/u-boot-spl.bin
MKSUNXI spl/sunxi-spl.bin
BINMAN all
./tools/binman/binman: 1: ./tools/binman/binman: main.py: not found
Makefile:1024: recipe for target 'all' failed
make: *** [all] Error 127
那是怎么解决这个错误呢?
你好。 谢谢,请输入代码或链接。 谢谢 sea18c.
https://gitee.com/xboot/xboot/blob/master/src/arch/arm32/mach-f1c100s/driver/ts-f1c100s.c
kingmooth 说:感谢达克罗德提供的代码,我在这基础上已移植到KEIL上了,可以用JLINE DEBUG。
可以分享下具体的移植过程吗?
_ _
_ _ | |___ _____ _____ _| |_
\ \/ /| _ | _ | _ |_ _| (C) 2007-2020
) ( | |_| | |_| | |_| | | |____JIANJUN.JIANG__
/_/\_\|_____|_____|_____| |_____________________|
V3.0.0 (Jul 25 2020 - 10:26:47) - [sast-kk131][SAST KK131 Digital Player Based On Allwinner F1C100S]不管在DRAM运行还是烧写到flash里,都卡在这里
这是GCC编译器有问题,换官方那个版本就可以了。
https://pan.baidu.com/s/1dDtssIt#list/path=%2F
xboot-toolchains->gcc-linaro-5.3.1-2016.05 ->gcc-linaro-5.3.1-2016.05-x86_64_arm-eabi.tar.xz
海思SDK软件包Hi3516EV200_SDK_V5.0.1.0编译
相关文件链接如下或者登录晕哥的百度VIP网盘,网盘内的3516文件夹下载
链接:https://pan.baidu.com/s/1_6gdohNCJKXm1TsDZ5hOkQ
提取码:mdo2
Hi3516EV200_SDK_V5.0.1.0.tgz在Hi3516EV200R002C05SPC010.rar > 01.software > board >
一、arm-himix100-linux 安装交叉编译工具链
安装步骤
拷贝。将arm-himix100-linux.tgz拷贝到Linux服务器上。
解压。解压文件,使用命令:
tar zxvf arm-himix100-linux.tgz –C ~/ #解压到~/目录
如果过程中没有提示信息,请等待命令执行完毕。
安装。解压完成后,进入arm-himix100-linux目录,
1、cd arm-himix100-linux
2、sudo apt-get install zlib1g-dev liblzo2-dev uuid-dev pkg-config lib32z1-dev #安装软件包
3、sudo ./arm-himix100-linux.install
4、source /etc/profile使环境变量生效
5、执行arm-himix100-linux-gcc -v
最好注销重新登录系统,不然重新打开终端会不成功
二、SDK软件包编译
拷贝。将Hi3516EV200_SDK_V5.0.1.0.tgz拷贝到Linux服务器上。
解压。解压文件,使用命令:
tar zxvf Hi3516EV200_SDK_V5.0.1.0.tgz –C ~/ #解压到~/目录
1、cd Hi3516EV200_SDK_V5.0.1.0
2、sudo ./sdk.unpack
这里会碰到一个问题./sdk.unpack: 2: ./sdk.unpack: source: not found
因为Ubuntu默认的脚本编辑器为sh,解压脚本用的dash,修改一下就行了
运行以下命令:
3、sudo dpkg-reconfigure dash
选择NO
再运行一遍./sdk.unpack就可以了
最终会解压出来四个文件夹drv mpp osal osdrv
drv:驱动模块
mpp:流媒体相关
osal:这个是新的,还没研究
osdrv:开源系统,包括工具链和内核文件系统
4、cd osdrv
5、make all
最后看到------- osdrv build done -------
看到晕哥在5月21就已转载了,但无奈CSDN积分不够,只能救助各路大神帮忙下载。
Windows10 USB驱动下载:
https://download.csdn.net/download/weixin_44570083/12438107
coolwatch_win32_R2.0.0002(调试软件):
https://download.csdn.net/download/weixin_44570083/12438131
UpgradeDownload_R23.0.0001(下载软件):
https://download.csdn.net/download/weixin_44570083/12438137
是的 ,除了 链接文件不一样 还在启动文件头部添加
```
b system_vectors
.long 0xaa55aa55
.long 0
.long image_size
```
标识了 ,直接copy 链接文件 和在启动文件中添加标识 就可以使用在主线RTT上了
你再参考 https://whycan.cn/t_3958.html 这个,他直接合并了启动与APP的bin文件,他给的源程序在linux下你要修改几个bug就可以用了
不想用LGPL,因为我要静态链接。我做的BSP是开源的,但是我的最终应用是闭源的。
另外,AWTK太强大了,很多功能我用不到。我只需要基本的显示和控件。AWTK的一大堆底层库我都用不到。
AWTK更像wx或者Qt,我需要的是类似MiniGUI的东西。
关于输入法和中文支持,这些我都没有需求。能显示ASCII,能支持常见触控控件,我就OK了。
不用普通单片机的唯一理由就是我想刷新到30fps/60fps,常见的IL系列芯片SPI频率最大10M/15M,可超到30M。
30M串口没法支持320*240*16*30,何况还得考虑过扫描和其他协议损耗。
那也是,功能多也不一定是最好的,适合自己的才是最好的,lvgl我移植好了到xboot,但对xboot不熟悉,下一步都不知怎么进行了。后面可以请教你xboot相关问题吗?
最近在xboot上移植了最新版的lvgl,把过程遇到的坑记录下:
先下载xboot源码
git clone https://github.com/xboot/xboot.git
下载完成后在/xboot/src/external/ 目录下新建lvgl-6.1.1目录;
在其目录下下载lvgl与lv_examples的源码:
git clone https://github.com/littlevgl/lvgl.git
git clone https://github.com/littlevgl/lv_examples.git
修改xboot/src/Makefile 文件,主要是添加交叉编译与添加lvgl文件路径,详见源代码;
把/xboot/src/external/lvgl-6.1.1/lvgl/下的lv_conf_template.h文件复制到/xboot/src/external/ lvgl-6.1.1/目录下并改名为lv_conf.h;
把/xboot/src/external/lvgl-6.1.1/lv_examples/下的lv_ex_conf_templ.h文件复制到/xboot/src/external/ lvgl-6.1.1/目录下并改名为lv_ex_conf.h;
设置详见源代码或直接复制源代码里的两个文件即可;
此时还有一个地方要修改,由于lvgl6.1.1版的LV_COLOR_DEPTH有1、8、16、32,默认是16 与xboot显示器使用有问题,需更改为32;
/xboot/src/external/lvgl-6.1.1/lvgl/src/lv_conf_checker.h 这个文件里面修改;
Lvgl的demo与驱动初始化相关程序详见/xboot/src/kernel/command/cmd-test.c。
源码编译后运行/xboot/tools/qemu-system/linux/ realview-run.sh 脚本,然后在shell输入test 回车即可以在显示屏看到lvgl的demo,本demo只加入了mouse输入,操作鼠标会在shell看到坐标输出。
注意:用鼠标操作时一开始坐标是不准的,需把鼠标移出虚拟机屏幕的右下角,多移几下后再移回屏幕,放到要点击的地方一两次再操作即可。
附件下载地址:configs_tar.gz
先下载xboot程序,在src下的Makefile文件里修改
CROSS_COMPILE ?=arm-linux-gnueabihf-
PLATFORM ?= arm32-realview
用vs code 打开xboot文件夹,按F5 选择C++(GDB/LLDB),弹出launch.json复制以下内容替换,
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "xboot debug ", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"program": "/home/sea18c/xboot/output/xboot", // 将要进行调试的程序的路径
"args": [],
"stopAtEntry": true, // 设为true时程序将暂停在程序入口处,我一般设置为true
"cwd": "${workspaceFolder}", // 调试程序时的工作目录
"environment": [], // (环境变量?)
"externalConsole": false, // 调试时是否显示控制台窗口,一般设置为true显示控制台,或者false用本软件控制台
"linux": { //特定于 Linux 的启动配置属性。
"MIMode": "gdb", //指示midebugengine将连接到的控制台调试器。允许值为“gdb”“lldb”。
"miDebuggerPath": "/usr/local/arm/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gdb",//调试器的路径。
},
"miDebuggerServerAddress": "localhost:10000",//要连接到的调试器服务器的网络地址(例如:localhost:1234)。
}
]
}
其中
"program" 为调试的路径;
"miDebuggerPath"为调试器的路径;
"miDebuggerServerAddress"为调试器服务器的网络地址。
然后在终端运行./tools/qemu-system/linux/realview-dbg.sh后再按F5即可单步调试。