您尚未登录。

楼主 # 2023-06-16 21:19:22

毅北辰
会员
注册时间: 2023-04-18
已发帖子: 8
积分: 3

请问对于编译Xboot源码的例程生成4MB的.bin文件,在下载到V3S的flash后启动亮屏要好几秒,有提速的方法吗?

荔枝派的V3S有人使用Xboot进行学习吗?
最近裸机开发,使用Xboot的例程,GCC编译出来的.bin文件达到了4MB多;
下载到荔枝派的板载flash上后,上电到程序启动需要5秒多,我在想这个以后要用的话,是不是需要裁剪,因为很多外设驱动都没用到,但是直接删除makefile文件就会报错。该如何裁剪用不到的驱动呢,不是很清楚如何修改。网上没搜到,希望有大佬指点迷津。
另外就是这个启动慢的情况,是否与V3S和板载spi nor flash之间的数据传输设置问题有关。
求助。感谢!!!
https://gitee.com/xboot/xboot

离线

#1 2023-06-17 00:26:33

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 650
积分: 783
个人网站

Re: 请问对于编译Xboot源码的例程生成4MB的.bin文件,在下载到V3S的flash后启动亮屏要好几秒,有提速的方法吗?

本人没用过xboot,初看源码,看似没有类似kconfig的配置方式,而需要修改src/Makefile里的SRCDIRS变量,注释不需要用到的源码的dir来实现裁剪。

离线

楼主 #2 2023-06-18 13:43:32

毅北辰
会员
注册时间: 2023-04-18
已发帖子: 8
积分: 3

Re: 请问对于编译Xboot源码的例程生成4MB的.bin文件,在下载到V3S的flash后启动亮屏要好几秒,有提速的方法吗?

海石生风 说:

本人没用过xboot,初看源码,看似没有类似kconfig的配置方式,而需要修改src/Makefile里的SRCDIRS变量,注释不需要用到的源码的dir来实现裁剪。

smile 感谢,确实裁剪了一些。。。但是makefile有些用不到的dir我已经进行了相关的注释,源码文件也进行了删除,编译的时候仍然会报错。是GCC编译器里边的.o文件报的错。是我没删干净还是编译器版本的问题。
/opt/gcc-arm-10.2-2020.11-x86_64-arm-none-linux-gnueabihf/bin/../lib/gcc/arm-none-linux-gnueabihf/10.2.1/../../../../arm-none-linux-gnueabihf/bin/ld: .obj/kernel/command/built-in.o: in function `menu':
/home/XXX/xboot/src/kernel/command/cmd-menu.c:111: undefined reference to `xui_end'
一些列的undefined reference to问题。请问继续删行得通吗?

离线

#3 2023-06-19 09:56:56

jiangchun9981
会员
注册时间: 2019-07-31
已发帖子: 170
积分: 130.5

Re: 请问对于编译Xboot源码的例程生成4MB的.bin文件,在下载到V3S的flash后启动亮屏要好几秒,有提速的方法吗?

XBOOT里面包含了太多的功能  要提高速度必须的去掉没用到的

离线

#4 2023-06-19 12:47:23

Blueskull
会员
注册时间: 2020-02-20
已发帖子: 458
积分: 444.5

Re: 请问对于编译Xboot源码的例程生成4MB的.bin文件,在下载到V3S的flash后启动亮屏要好几秒,有提速的方法吗?

@毅北辰

想多了,XBoot光靠改Makefile是远远不够的。很多代码都是写死了的,什么模块调用什么,都是有依赖的。
找找我N年前有个帖子,裁剪XBoot的,代码要改好多的。

离线

#5 2023-06-19 15:45:09

jiangchun9981
会员
注册时间: 2019-07-31
已发帖子: 170
积分: 130.5

Re: 请问对于编译Xboot源码的例程生成4MB的.bin文件,在下载到V3S的flash后启动亮屏要好几秒,有提速的方法吗?

好像最小可以弄到150K左右

但是的去掉GUI ,去掉图形引擎 ,去掉字体库

离线

楼主 #6 2023-06-19 23:54:26

毅北辰
会员
注册时间: 2023-04-18
已发帖子: 8
积分: 3

Re: 请问对于编译Xboot源码的例程生成4MB的.bin文件,在下载到V3S的flash后启动亮屏要好几秒,有提速的方法吗?

Blueskull 说:

@毅北辰

想多了,XBoot光靠改Makefile是远远不够的。很多代码都是写死了的,什么模块调用什么,都是有依赖的。
找找我N年前有个帖子,裁剪XBoot的,代码要改好多的。

我找到18年有个博客帖子,我按照里边的,只能操作了一部分,说是按照报错去找文件删除。操作了一会,再按照博客的继续删,就会出现报错,项目里边的代码删了也还是会提示错误,文件在项目里都找不到了,还报错,也不知道那里链上的,吐了。而且有的看路径是GCC文件里边的错,我这就有点懵了。现在纠结是不知道该删那些,因为看不懂:(。xboot应该不是给小白用的吧,好像没什么资料看。

离线

楼主 #7 2023-06-20 00:19:05

毅北辰
会员
注册时间: 2023-04-18
已发帖子: 8
积分: 3

Re: 请问对于编译Xboot源码的例程生成4MB的.bin文件,在下载到V3S的flash后启动亮屏要好几秒,有提速的方法吗?

jiangchun9981 说:

好像最小可以弄到150K左右

但是的去掉GUI ,去掉图形引擎 ,去掉字体库

对。但是如果里边的对图形的操作之类的不动的话,最终减下来也减不了多少吧。我在网上有个思路说是程序拷到SRAM里边后,提前执行代码及其需要的资源,运行起来,再加载剩下的资源,但是我不懂怎么改。话说回来:D ,我要会改好像也不会纠结了,有点无知闭环了[尴尬]。

离线

#8 2023-06-20 07:06:02

Blueskull
会员
注册时间: 2020-02-20
已发帖子: 458
积分: 444.5

Re: 请问对于编译Xboot源码的例程生成4MB的.bin文件,在下载到V3S的flash后启动亮屏要好几秒,有提速的方法吗?

@毅北辰

你说的就是SPL的思想,XBoot已经用SPL了。

离线

#9 2023-06-20 09:07:32

jiangchun9981
会员
注册时间: 2019-07-31
已发帖子: 170
积分: 130.5

Re: 请问对于编译Xboot源码的例程生成4MB的.bin文件,在下载到V3S的flash后启动亮屏要好几秒,有提速的方法吗?

加载的瓶颈是spi nor flash的SPI读取速度 

印象中基本不能再快了

离线

#10 2023-06-20 09:08:28

jiangchun9981
会员
注册时间: 2019-07-31
已发帖子: 170
积分: 130.5

Re: 请问对于编译Xboot源码的例程生成4MB的.bin文件,在下载到V3S的flash后启动亮屏要好几秒,有提速的方法吗?

可以考虑用SD卡加载  有模拟SD卡的芯片的

离线

#11 2023-06-20 09:53:23

506826164@qq.com
会员
注册时间: 2022-08-07
已发帖子: 57
积分: 77

Re: 请问对于编译Xboot源码的例程生成4MB的.bin文件,在下载到V3S的flash后启动亮屏要好几秒,有提速的方法吗?

改下spi读取那一块,读取16M数据仅需0.75s

离线

楼主 #12 2023-06-20 10:55:41

毅北辰
会员
注册时间: 2023-04-18
已发帖子: 8
积分: 3

Re: 请问对于编译Xboot源码的例程生成4MB的.bin文件,在下载到V3S的flash后启动亮屏要好几秒,有提速的方法吗?

Blueskull 说:

@毅北辰

你说的就是SPL的思想,XBoot已经用SPL了。

【尴尬】对,我看到编译输出信息提示里边有一句“The bootloader head has been fixed, spl size is 32768 bytes.”

请教了GPT的解释是:“这句话是一个启动引导程序的输出信息。它表示启动引导程序头部已被固定,SPL(Secondary Program Loader)大小为 32768 字节。换句话说,启动引导程序的头部和 SPL 的大小已被确定下来。启动引导程序是一段特殊的代码,负责系统启动时进行低级别的硬件初始化、加载操作系统内核或其他引导加载程序等操作。在启动引导程序中,SPL 是启动引导程序执行时加载和运行的第二个程序镜像,通常作为引导加载程序的一部分使用。”

离线

#13 2023-06-20 13:11:30

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 650
积分: 783
个人网站

Re: 请问对于编译Xboot源码的例程生成4MB的.bin文件,在下载到V3S的flash后启动亮屏要好几秒,有提速的方法吗?

jiangchun9981 说:

加载的瓶颈是spi nor flash的SPI读取速度 

印象中基本不能再快了

NOR Flash不是有XIP特性么,可以直接在Flash内运行程序。还是说V3S或全志的芯片不支持XIP?

离线

#14 2023-06-25 14:33:56

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 650
积分: 783
个人网站

Re: 请问对于编译Xboot源码的例程生成4MB的.bin文件,在下载到V3S的flash后启动亮屏要好几秒,有提速的方法吗?

貌似在全网都没有找到全志MPU上跟NOR Flash的XIP相关的信息。是全志所有的芯片都是空有QSPI接口却不支持XIP?

离线

楼主 #15 2023-06-26 14:55:24

毅北辰
会员
注册时间: 2023-04-18
已发帖子: 8
积分: 3

Re: 请问对于编译Xboot源码的例程生成4MB的.bin文件,在下载到V3S的flash后启动亮屏要好几秒,有提速的方法吗?

506826164@qq.com 说:

改下spi读取那一块,读取16M数据仅需0.75s

老哥能细说吗?我改了设备树文件SPI总线的频率好像没用。
"blk-spinor@0": {
        "spi-bus": "spi-v3s.0",
        "chip-select": 0,
        "mode": 0,
        "speed": 50000000,
        "partition": [
            { "name": "xboot",   "offset": 0,       "length": 4194304 },
            { "name": "private", "offset": 4194304, "length": 0 }
        ]
    },
我按着修改了这个,没起作用。
GPT:“"speed" 属性指定了 SPI 总线的速率,它控制了 SPI 传输的时钟频率。因此,可以通过修改 "speed" 属性来修改 SPI 总线的速率,进而间接地修改 SPI 速度。在这个例子中,"speed" 属性值为 50000000,表示 SPI 总线的时钟频率为 50MHz。”
“根据全志 V3S 数据手册中的说明,板载 SPI NOR Flash 支持的最高速率为 83 MHz”

我的flash芯片是XT25F128B。16MB大小的。如果读得快一些应该会更快吧?

离线

#16 2023-06-26 16:45:50

506826164@qq.com
会员
注册时间: 2022-08-07
已发帖子: 57
积分: 77

Re: 请问对于编译Xboot源码的例程生成4MB的.bin文件,在下载到V3S的flash后启动亮屏要好几秒,有提速的方法吗?

@毅北辰
spi可以支持到100M的,另外还需要修改优化spi读取部分,一般做到20M/s不是问题

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn