页次: 1
@smiletiger
之前也是用这种方式过的.
请问你是用哪种方式过的
哪种???
@smiletiger
你看看CCU部分PLL的Spread Spectrum描述就有了,不过据我近场测试来看,它对峰值基本没用,
平均值倒是下降不少,不晓得准峰值会不会好点。你可以试试,分享下。
谢谢指点,我配置下去试试看,
用的两层板???
四层板,,有完整的铺地层,没有任何分割
T113也是支持展频的,至少LVDS和RGB都支持,MIPI我没试过就不知道有没有了
用近场探头扫扫,看看辐射路径呗。
辐射路径就是通过mipi的时钟,经过液晶屏排线辐射出去的,排线拿导电胶包裹就可以通过测试,但是想还有没有更有利于生产的方案去解决这个问题.
另外展频功能具体在哪个寄存器,能否指导一下,rgb lvds的展频在哪里设置
有懂行的朋友吗,求助
你好,滤波器如下
WCM2012F2SF-900T04
用了很多类似规格的就是2012 -900这个规格的,,试了几个都不行,不知道有什么好的推荐吗
谢谢,终于有人回复了.我用的是YLM2012-900T ,并且还在滤波器后面加了100p电容,还是过不了,请问你们用的什么滤波器解决的.是加在mipi信号的两根时钟上面吗.另外数据线上面有没有加.
我在时钟和数据线上面加了总共5个YLM2012-900T 这个滤波器,结果测试的时候发现还没有不加滤波器好,百思不得其解.看频率就是mipi的时钟造成的,还请指教
T113驱动mipi屏幕,过EMI的辐射超标了,,液晶屏是1280*720 4lan 60hz,经过计算得到的mipi时钟频率为1305*870*24*60/4/2=204363000=204.36M
刚刚和re测试结果吻合204m超标,请问t113的mipi时钟信号有展频功能吗,该怎么样去整改
方案1.增加共模滤波器,测试失败
方案2.增加rc滤波,电阻值为100欧 电容为100p,测试失败,
经过百度,可以通过增加展频ic解决,但是想问问,t113有没有自带展频功能,T507是带展频功能的. 具体连接看这里https://cloud.tencent.com/developer/article/2290655
共模滤波器型号为YLM2012-900T
附上滤波器参数
一直以来跑裸机都没用jlink调试,看到大家都在用jlink调试,试了下,可以用,但是打开mmu之后或者打开cache之后jlink就断掉了,所以大家都是怎么调试f1c200s的,我现在用f1c200s跑rtthread,可以用jlink来调试吗,开了mmu之后?或者说有没有用jlink调试f1c200s+rtthread的
项目有用到一个8位i80接口的mcu屏幕,研究了一下f1c200s是支持i80接口的,测试了一下,已经点屏成功,但是帧率上不去,tcon0自动刷屏的一行固定帧率为0.2
ms,
这样的话我的屏幕分辨率是480x320,一屏需要的时间为0.2*320=64ms,一秒钟也就15帧,这怎么搞,仔细抓了一下波形,发现每一行刷屏信号里面45
us为有效信号,其他的150us这段时间没有产生总线数据,唉不知道咋回事,本来如果按照0.05ms算的话帧率可以到60帧的,,大家看图
T113的uboot怎么样编译才能产生u-boot-sunxi-with-spl.bin,试了无数次都只能产生u-boot.bin
是不是要设置什么CONFIG?
这是mipi接口的屏了吧,裸机mipi接口也搞好了?
转的mipi 我跑下来awtk可以到125帧,但是总感觉没有lvgl的60帧流畅,总感觉很卡
楼主你是过来炫耀的吧?
我没有用过lvgl,之前用的awtk,总感觉性能跟不上,才来咨询下, 用的t113是全志出的,淘宝买的,有啥值得炫耀的?lvgl也是开源拿来用的,没有做过任何优化
rtt➕lvgl 测试了一下帧率 用的液晶屏是1280x720 32bit
用的lv_demo_benchmark(0)跑的结果是 237帧
不知道这样够不够流畅 有没有做过lvgl项目的来说一下
把CPU频率超频到了1.752GHz ddr超频到1.164G,老化测试了几个小时很稳定,没任何报错,芯片表面温度为49℃,室温为26℃
\ | /
- RT - Thread Operating System
/ | \ 4.1.0 build Sep 20 2022 10:33:12
2006 - 2022 Copyright by RT-Thread team
hello rt-thread 10:23:02
msh >CPU_clk=1752MHz
CPU_clk=1752MHz
DDR_clk=1164MHz
msh >core_mark
Benchmark started, please make sure it runs for at least 10s.
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 9352
Total time (secs): 9.352000
Iterations/Sec : 5346.449957
ERROR! Must execute for at least 10 secs for a valid result!
Iterations : 50000
Compiler version : GCC6.3.1 20170215 (release) [ARM/embedded-6-branch revision 245512]
Compiler flags :
Memory location : STACK
seedcrc : 0xe9f5
[0]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[0]crcfinal : 0xa14c
Errors detected
msh >memory_perf 0x46000000 0x100000
MemoryPerf version 1.0.0
Copyright (c) 2022 SummerGift (summergift2019@gmail.com)
Licensed under the MIT License version.
Memory performance testing start...
address: 0x46000000, length: 0x100000, iterations: 200
Data length : 209 MB.
--------------------------------------
8-bit write speed test begin.
Spend time : 0.165000 s.
8-bit write speed: 1271.001221 M/s.
8-bit read speed test begin.
Spend time : 0.406000 s.
8-bit Read speed: 516.539917 M/s.
--------------------------------------
16-bit write speed test begin.
Spend time : 0.083000 s.
16-bit write speed: 2526.689209 M/s.
16-bit read speed test begin.
Spend time : 0.234000 s.
16-bit Read speed: 896.218811 M/s.
--------------------------------------
32-bit write speed test begin.
Spend time : 0.054000 s.
32-bit Write speed: 3883.614746 M/s.
32-bit read speed test begin.
Spend time : 0.133000 s.
32-bit Read speed: 1576.806030 M/s.
Memory performance completed.
最高测试了稳定的频率为 1.8G和1.2G,表面温度为62℃
\ | /
- RT - Thread Operating System
/ | \ 4.1.0 build Sep 20 2022 10:33:12
2006 - 2022 Copyright by RT-Thread team
hello rt-thread 10:33:28
msh >CPU_clk=1800MHz
CPU_clk=1800MHz
DDR_clk=1200MHz
msh >core_mark
Benchmark started, please make sure it runs for at least 10s.
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 9147
Total time (secs): 9.147000
Iterations/Sec : 5466.273095
ERROR! Must execute for at least 10 secs for a valid result!
Iterations : 50000
Compiler version : GCC6.3.1 20170215 (release) [ARM/embedded-6-branch revision 245512]
Compiler flags :
Memory location : STACK
seedcrc : 0xe9f5
[0]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[0]crcfinal : 0xa14c
Errors detected
msh >memory_perf 0x46000000 0x100000
MemoryPerf version 1.0.0
Copyright (c) 2022 SummerGift (summergift2019@gmail.com)
Licensed under the MIT License version.
Memory performance testing start...
address: 0x46000000, length: 0x100000, iterations: 200
Data length : 209 MB.
--------------------------------------
8-bit write speed test begin.
Spend time : 0.164000 s.
8-bit write speed: 1278.751221 M/s.
8-bit read speed test begin.
Spend time : 0.399000 s.
8-bit Read speed: 525.601990 M/s.
--------------------------------------
16-bit write speed test begin.
Spend time : 0.083000 s.
16-bit write speed: 2526.689209 M/s.
16-bit read speed test begin.
Spend time : 0.229000 s.
16-bit Read speed: 915.786865 M/s.
--------------------------------------
32-bit write speed test begin.
Spend time : 0.051000 s.
32-bit Write speed: 4112.062500 M/s.
32-bit read speed test begin.
Spend time : 0.147000 s.
32-bit Read speed: 1426.634033 M/s.
Memory performance completed.
msh >
有谁移植过t113或者f133的裸机G2D部分吗,我愿意出400元,有这方面经验的朋友可以私信我,谢谢
请问一下t113的dma是否有bug,我在测试uart3的rxd接收dma,配置为dma1,然后开始接收数据,比如我配置为接收256个字节产生dma完成中断,这个是没有问题的,并且也能正常接收到数据,但是想实现任意长度数据的接收,然后就想到读取dma寄存器的
0x0118 + N*0x0040 DMAC Channel Byte Counter Left Register N (Default Value: 0x0000_0000)这个寄存器,看资料这个寄存器里面读出来的数据就是代表本次dma传输剩余的数据,比如我上位机发送10个数据过去,然后这里应该读取出来的是(256-10)=246个,打是我在读取中发现这里的数据固定为256.....只有当上位机发送128个字节之后,这里的数据变成128 ,然后继续保持128不变,直到上位机发送完256个字节这里才变成0,
也就是说这个寄存器里面的数据是按照128字节跳跃的,并不是接收到多少个,这里减少多少个,是我配置的问题还是这个芯片本身的bug,
如果按照128字节跳跃的话,我该如何实现dma接收不定长数据的功能
uart3接收配置如下
mcu_rx_dma_set.loop_mode =0;
mcu_rx_dma_set.wait_cyc = 0x80;
/* uartMCU_rx_dma->data_block_size = 1 * DMAC_CFG_SRC_DATA_WIDTH_8BIT/8;*/
mcu_rx_dma_set.data_block_size = 1 * 32 / 8;
mcu_rx_dma_set.channal_cfg.src_drq_type = DMAC_CFG_TYPE_UART3; /* UART3 */
mcu_rx_dma_set.channal_cfg.src_addr_mode = DMAC_CFG_SRC_ADDR_TYPE_IO_MODE;
mcu_rx_dma_set.channal_cfg.src_burst_length = DMAC_CFG_SRC_1_BURST;
mcu_rx_dma_set.channal_cfg.src_data_width = DMAC_CFG_SRC_DATA_WIDTH_8BIT;
mcu_rx_dma_set.channal_cfg.dst_drq_type = DMAC_CFG_TYPE_DRAM; /* DRAM */
mcu_rx_dma_set.channal_cfg.dst_addr_mode = DMAC_CFG_DEST_ADDR_TYPE_LINEAR_MODE;
mcu_rx_dma_set.channal_cfg.dst_burst_length = DMAC_CFG_DEST_1_BURST;
mcu_rx_dma_set.channal_cfg.dst_data_width = DMAC_CFG_DEST_DATA_WIDTH_8BIT;
nor镜像是有全志的封装格式的,前面有eGON还是BT0之类的头、魔数这些东西的
正常全志系统第一级BROM,引导第二级BOOT0启动,会校验一下头
这些xboot都是弄好的,之前玩f100cs的时候就是直接烧录的
t113-s3用xboot编译成功烧录到nor没反应,sdram里面可以运行,用的xboot源码,没有修改任何东西,下面是
用这个指令加载到sdram里面运行的界面,
Program to RAM and execute
sudo xfel ddr t113-s3; sudo xfel write 0x40000000 xboot.bin; sudo xfel exec 0x40000000;
然后我想按照说明烧录到spi nor,烧录完毕之后,上电却没有任何反应,读取出来的spi内容的确已经烧录进去了,读取sram的内容为0,也就是说应该是brom没有自动读取到sram,bin文件已经用mksunxi修改过了,并且上电不会进入fel模式,说明brom也认出来了,不存在头不对的问题,那么问题到底在哪里呢
Burn normal image to SPI Nor Flash
sudo xfel spinor write 0 xboot.bin
█████████████████████████████████
██ ▄▄▄▄▄ █▄▄ ██▄▀▄█ ▄ █ ▄▄▄▄▄ ██
██ █ █ ██▀██ ▀█▄█▀ █ █ █ █ ██
██ █▄▄▄█ █ ▄▄▀▄ ▄█ █▀▄▀█ █▄▄▄█ ██
██▄▄▄▄▄▄▄█▄▀ ▀ █ █▄█▄▀▄█▄▄▄▄▄▄▄██
██▀ ▄▄▄▄▄ █▄▄ ███▀▀▄▄▀▄█▀▄ ███ ██
██▄█ █ ▄▄▀ █▀ ██▄█ ▀▄ ██▄▄█▄███
███▀▀ ▄▀█ ▀▄ ▀█▄▄▀▀▄▀▄▀▄▄▄ ██
██▄▄ ███▄▄▄█▄▄ █ ▄██▄█▄ ▀▀▀▄▄ ███
██ ▄▀ ▄█▀██▄▄█▄ █▄▄▀▀▄▀▄▀ ▄▄▀██
██ █ ▀▀ ▄▄▄ █▀▀█▄██▀█▀ ██ ██ ███
██▄██▄▄█▄▄▀▄▀▀▄▄▄▄▄▄▄█ ▄▄▄ ▄▄▀██
██ ▄▄▄▄▄ █ ▀██▀█▄ ▄██ █▄█ ██ ███
██ █ █ █ ▀▄ █▄▄▀ ▀█▄ ▄ ▄ ▄▀▀██
██ █▄▄▄█ █ ▀▀█▄▀▄▄█ ▀▀▀▄█ ██ ███
██▄▄▄▄▄▄▄████▄▄▄█▄▄▄▄█████▄▄▄████
█████████████████████████████████
_ _
_ _ | |___ _____ _____ _| |_
\ \/ /| _ | _ | _ |_ _| (C) 2007-2022
) ( | |_| | |_| | |_| | | |____JIANJUN.JIANG__
/_/\_\|_____|_____|_____| |_____________________|
V3.0.0 (Jun 4 2022 - 10:58:00) - [mangopi][MangoPi-MQ Based On Allwinner T133-S3 SOC]
[ 0.000020]Probe device 'blk-romdisk.0' with blk-romdisk
[ 0.000800]Probe device 'ext-32k' with clk-fixed
[ 0.000810]Probe device 'rc-16m' with clk-fixed
[ 0.000820]Probe device 'dcxo24m' with clk-fixed
[ 0.000830]Probe device 'ext32k-gate' with clk-gate
[ 0.000840]Probe device 'iosc' with clk-gate
[ 0.000850]Probe device 'iosc-div32k' with clk-fixed-factor
[ 0.000860]Probe device 'osc32k' with clk-mux
[ 0.000870]Probe device 'dcxo24m-div32k-gate' with clk-gate
[ 0.000880]Probe device 'dcxo24m-div32k' with clk-fixed-factor
[ 0.000890]Probe device 'rtc32k' with clk-mux
[ 0.000900]Probe device 'rtc-1k' with clk-fixed-factor
[ 0.000910]Probe device 'pll-cpux' with clk-t113-pll
[ 0.000920]Probe device 'pll-ddr0' with clk-t113-pll
[ 0.000930]Probe device 'pll-periph0-parent' with clk-t113-pll
[ 0.000940]Probe device 'pll-video0' with clk-t113-pll
[ 0.000950]Probe device 'pll-video1' with clk-t113-pll
[ 0.000960]Probe device 'pll-ve' with clk-t113-pll
[ 0.000970]Probe device 'pll-audio0-4x' with clk-t113-pll
[ 0.000980]Probe device 'pll-audio1' with clk-t113-pll
[ 0.000990]Probe device 'pll-cpux-div' with clk-ratio
[ 0.001000]Probe device 'pll-periph0-2x' with clk-divider
[ 0.001010]Probe device 'pll-periph0-800m' with clk-divider
[ 0.001020]Probe device 'pll-periph0' with clk-fixed-factor
[ 0.001030]Probe device 'pll-periph0-div3' with clk-fixed-factor
[ 0.001040]Probe device 'pll-video0-4x' with clk-fixed-factor
[ 0.001050]Probe device 'pll-video0-2x' with clk-fixed-factor
[ 0.001060]Probe device 'pll-video1-4x' with clk-fixed-factor
[ 0.001070]Probe device 'pll-video1-2x' with clk-fixed-factor
[ 0.001080]Probe device 'pll-audio0-2x' with clk-fixed-factor
[ 0.001090]Probe device 'pll-audio0' with clk-fixed-factor
[ 0.001100]Probe device 'pll-audio1-div5' with clk-divider
[ 0.001110]Probe device 'pll-audio1-div2' with clk-divider
[ 0.001120]Probe device 'mux-psi' with clk-mux
[ 0.001130]Probe device 'div-psi' with clk-divider
[ 0.001140]Probe device 'psi-ahb' with clk-ratio
[ 0.001150]Probe device 'mux-apb0' with clk-mux
[ 0.001160]Probe device 'div-apb0' with clk-divider
[ 0.001170]Probe device 'apb0' with clk-ratio
[ 0.001180]Probe device 'mux-apb1' with clk-mux
[ 0.001190]Probe device 'div-apb1' with clk-divider
[ 0.001200]Probe device 'apb1' with clk-ratio
[ 0.001210]Probe device 'mux-riscv' with clk-mux
[ 0.001220]Probe device 'riscv' with clk-divider
[ 0.001230]Probe device 'riscv-axi' with clk-divider
[ 0.001240]Probe device 'mux-timer0' with clk-mux
[ 0.001250]Probe device 'timer0' with clk-ratio
[ 0.001260]Probe device 'mux-timer1' with clk-mux
[ 0.001270]Probe device 'timer1' with clk-ratio
[ 0.001280]Probe device 'mux-spi0' with clk-mux
[ 0.001290]Probe device 'div-spi0' with clk-divider
[ 0.001300]Probe device 'radio-spi0' with clk-ratio
[ 0.001310]Probe device 'gate-spi0' with clk-gate
[ 0.001320]Probe device 'spi0' with clk-gate
[ 0.001330]Probe device 'mux-spi1' with clk-mux
[ 0.001340]Probe device 'div-spi1' with clk-divider
[ 0.001350]Probe device 'radio-spi1' with clk-ratio
[ 0.001360]Probe device 'gate-spi1' with clk-gate
[ 0.001370]Probe device 'spi1' with clk-gate
[ 0.001380]Probe device 'mux-sdmmc0' with clk-mux
[ 0.001390]Probe device 'div-sdmmc0' with clk-divider
[ 0.001400]Probe device 'radio-sdmmc0' with clk-ratio
[ 0.001410]Probe device 'gate-sdmmc0' with clk-gate
[ 0.001420]Probe device 'mux-sdmmc1' with clk-mux
[ 0.001430]Probe device 'div-sdmmc1' with clk-divider
[ 0.001440]Probe device 'radio-sdmmc1' with clk-ratio
[ 0.001450]Probe device 'gate-sdmmc1' with clk-gate
[ 0.001460]Probe device 'mux-sdmmc2' with clk-mux
[ 0.001470]Probe device 'div-sdmmc2' with clk-divider
[ 0.001480]Probe device 'radio-sdmmc2' with clk-ratio
[ 0.001490]Probe device 'gate-sdmmc2' with clk-gate
[ 0.001500]Probe device 'mux-ledc' with clk-mux
[ 0.001510]Probe device 'div-ledc' with clk-divider
[ 0.001520]Probe device 'radio-ledc' with clk-ratio
[ 0.001530]Probe device 'ledc' with clk-gate
[ 0.001540]Probe device 'mux-tpadc' with clk-mux
[ 0.001550]Probe device 'gate-tpadc' with clk-gate
[ 0.001560]Probe device 'link-tpadc' with clk-link
[ 0.001570]Probe device 'mux-de' with clk-mux
[ 0.001580]Probe device 'div-de' with clk-divider
[ 0.001590]Probe device 'gate-de' with clk-gate
[ 0.001600]Probe device 'link-de' with clk-link
[ 0.001610]Probe device 'mux-tconlcd' with clk-mux
[ 0.001620]Probe device 'div-tconlcd' with clk-divider
[ 0.001630]Probe device 'ratio-tconlcd' with clk-ratio
[ 0.001640]Probe device 'gate-tconlcd' with clk-gate
[ 0.001650]Probe device 'link-tconlcd' with clk-link
[ 0.001660]Probe device 'mux-ce' with clk-mux
[ 0.001670]Probe device 'div-ce' with clk-divider
[ 0.001680]Probe device 'ratio-ce' with clk-ratio
[ 0.001690]Probe device 'gate-ce' with clk-gate
[ 0.001700]Probe device 'link-ce' with clk-link
[ 0.001710]Probe device 'bus-pwm' with clk-gate
[ 0.001720]Probe device 'bus-iommu' with clk-gate
[ 0.001730]Probe device 'bus-ir-tx' with clk-gate
[ 0.001740]Probe device 'bus-gpadc' with clk-gate
[ 0.001750]Probe device 'bus-ths' with clk-gate
[ 0.001760]Probe device 'bus-spdif' with clk-gate
[ 0.001770]Probe device 'bus-dmic' with clk-gate
[ 0.001780]Probe device 'bus-audio-codec' with clk-gate
[ 0.001790]Probe device 'bus-tpadc' with clk-gate
[ 0.001800]Probe device 'bus-tzma' with clk-gate
[ 0.001810]Probe device 'bus-uart0' with clk-gate
[ 0.001820]Probe device 'bus-uart1' with clk-gate
[ 0.001830]Probe device 'bus-uart2' with clk-gate
[ 0.001840]Probe device 'bus-uart3' with clk-gate
[ 0.001850]Probe device 'bus-uart4' with clk-gate
[ 0.001860]Probe device 'bus-uart5' with clk-gate
[ 0.001870]Probe device 'bus-i2c0' with clk-gate
[ 0.001880]Probe device 'bus-i2c1' with clk-gate
[ 0.001890]Probe device 'bus-i2c2' with clk-gate
[ 0.001900]Probe device 'bus-i2c3' with clk-gate
[ 0.001910]Probe device 'bus-can0' with clk-gate
[ 0.001920]Probe device 'bus-can1' with clk-gate
[ 0.001930]Probe device 'bus-i2s0' with clk-gate
[ 0.001940]Probe device 'bus-i2s1' with clk-gate
[ 0.001950]Probe device 'bus-i2s2' with clk-gate
[ 0.001960]Probe device 'bus-de' with clk-gate
[ 0.001970]Probe device 'bus-di' with clk-gate
[ 0.001980]Probe device 'bus-g2d' with clk-gate
[ 0.001990]Probe device 'bus-ce' with clk-gate
[ 0.002000]Probe device 'bus-ve' with clk-gate
[ 0.002010]Probe device 'bus-dma' with clk-gate
[ 0.002020]Probe device 'bus-msgbox0' with clk-gate
[ 0.002030]Probe device 'bus-msgbox1' with clk-gate
[ 0.002040]Probe device 'bus-msgbox2' with clk-gate
[ 0.002050]Probe device 'bus-spinlock' with clk-gate
[ 0.002060]Probe device 'bus-hstimer' with clk-gate
[ 0.002070]Probe device 'bus-dbg' with clk-gate
[ 0.002080]Probe device 'bus-dram' with clk-gate
[ 0.002090]Probe device 'bus-mmc0' with clk-gate
[ 0.002100]Probe device 'bus-mmc1' with clk-gate
[ 0.002110]Probe device 'bus-mmc2' with clk-gate
[ 0.002120]Probe device 'bus-emac0' with clk-gate
[ 0.002130]Probe device 'bus-ohci0' with clk-gate
[ 0.002140]Probe device 'bus-ohci1' with clk-gate
[ 0.002150]Probe device 'bus-ehci0' with clk-gate
[ 0.002160]Probe device 'bus-ehci1' with clk-gate
[ 0.002170]Probe device 'bus-otg' with clk-gate
[ 0.002180]Probe device 'bus-lradc' with clk-gate
[ 0.002190]Probe device 'bus-dpss-top' with clk-gate
[ 0.002200]Probe device 'bus-hdmi' with clk-gate
[ 0.002210]Probe device 'bus-mipi-dsi' with clk-gate
[ 0.002220]Probe device 'bus-tcon-lcd' with clk-gate
[ 0.002230]Probe device 'bus-tcon-tv' with clk-gate
[ 0.002240]Probe device 'bus-tve-top' with clk-gate
[ 0.002250]Probe device 'bus-tve' with clk-gate
[ 0.002260]Probe device 'bus-tvd-top' with clk-gate
[ 0.002270]Probe device 'bus-tvd' with clk-gate
[ 0.002280]Probe device 'bus-ledc' with clk-gate
[ 0.002290]Probe device 'bus-csi' with clk-gate
[ 0.002300]Probe device 'bus-dsp-cfg' with clk-gate
[ 0.002310]Probe device 'bus-riscv-cfg' with clk-gate
[ 0.002320]Probe device 'wdg' with clk-link
[ 0.002330]Probe device 'reset-t113.0' with reset-t113
[ 0.002340]Probe device 'reset-t113.1' with reset-t113
[ 0.002350]Probe device 'reset-t113.2' with reset-t113
[ 0.002360]Probe device 'reset-t113.3' with reset-t113
[ 0.002370]Probe device 'reset-t113.4' with reset-t113
[ 0.002380]Probe device 'reset-t113.5' with reset-t113
[ 0.002390]Probe device 'reset-t113.6' with reset-t113
[ 0.002400]Probe device 'reset-t113.7' with reset-t113
[ 0.002410]Probe device 'reset-t113.8' with reset-t113
[ 0.002420]Probe device 'reset-t113.9' with reset-t113
[ 0.002430]Probe device 'reset-t113.10' with reset-t113
[ 0.002440]Probe device 'reset-t113.11' with reset-t113
[ 0.002450]Probe device 'reset-t113.12' with reset-t113
[ 0.002460]Probe device 'reset-t113.13' with reset-t113
[ 0.002470]Probe device 'reset-t113.14' with reset-t113
[ 0.002480]Probe device 'reset-t113.15' with reset-t113
[ 0.002490]Probe device 'reset-t113.16' with reset-t113
[ 0.002500]Probe device 'reset-t113.17' with reset-t113
[ 0.002510]Probe device 'reset-t113.18' with reset-t113
[ 0.002520]Probe device 'reset-t113.19' with reset-t113
[ 0.002530]Probe device 'reset-t113.20' with reset-t113
[ 0.002540]Probe device 'reset-t113.21' with reset-t113
[ 0.002550]Probe device 'reset-t113.22' with reset-t113
[ 0.002560]Probe device 'reset-t113.23' with reset-t113
[ 0.002570]Probe device 'reset-t113.24' with reset-t113
[ 0.002580]Probe device 'reset-t113.25' with reset-t113
[ 0.002590]Probe device 'reset-t113.26' with reset-t113
[ 0.002600]Probe device 'reset-t113.27' with reset-t113
[ 0.002610]Probe device 'reset-t113.28' with reset-t113
[ 0.002620]Probe device 'reset-t113.29' with reset-t113
[ 0.002630]Probe device 'reset-t113.30' with reset-t113
[ 0.002640]Probe device 'reset-t113.31' with reset-t113
[ 0.002650]Probe device 'reset-t113.32' with reset-t113
[ 0.002660]Probe device 'reset-t113.33' with reset-t113
[ 0.002670]Probe device 'reset-t113.34' with reset-t113
[ 0.002680]Probe device 'reset-t113.35' with reset-t113
[ 0.002690]Probe device 'reset-t113.36' with reset-t113
[ 0.002700]Probe device 'reset-t113.37' with reset-t113
[ 0.002710]Probe device 'irq-gic400.0' with irq-gic400
[ 0.002720]Probe device 'irq-t113-gpio.0' with irq-t113-gpio
[ 0.002730]Probe device 'irq-t113-gpio.1' with irq-t113-gpio
[ 0.002740]Probe device 'irq-t113-gpio.2' with irq-t113-gpio
[ 0.002750]Probe device 'irq-t113-gpio.3' with irq-t113-gpio
[ 0.002760]Probe device 'irq-t113-gpio.4' with irq-t113-gpio
[ 0.002770]Probe device 'irq-t113-gpio.5' with irq-t113-gpio
[ 0.002780]Probe device 'gpio-t113.0' with gpio-t113
[ 0.002790]Probe device 'gpio-t113.1' with gpio-t113
[ 0.002800]Probe device 'gpio-t113.2' with gpio-t113
[ 0.002810]Probe device 'gpio-t113.3' with gpio-t113
[ 0.002820]Probe device 'gpio-t113.4' with gpio-t113
[ 0.002830]Probe device 'gpio-t113.5' with gpio-t113
[ 0.002880]Probe device 'dma-t113.0' with dma-t113
[ 0.002930]Probe device 'adc-t113.0' with adc-t113
[ 0.002940]Probe device 'ce-t113-timer.0' with ce-t113-timer
[ 0.000021]Probe device 'cs-t113-timer.0' with cs-t113-timer
[ 0.005655]Probe device 'uart-16550.0' with uart-16550
[ 0.010848]Probe device 'uart-16550.1' with uart-16550
[ 0.016222]Probe device 'uart-16550.2' with uart-16550
[ 0.021336]Probe device 'uart-16550.3' with uart-16550
[ 0.026459]Probe device 'uart-16550.4' with uart-16550
[ 0.031582]Probe device 'uart-16550.5' with uart-16550
[ 0.036691]Probe device 'i2c-t113.0' with i2c-t113
[ 0.041679]Probe device 'i2c-t113.1' with i2c-t113
[ 0.046690]Probe device 'i2c-t113.2' with i2c-t113
[ 0.051456]Probe device 'i2c-t113.3' with i2c-t113
[ 0.056240]Probe device 'spi-t113.0' with spi-t113
[ 0.061028]The spi nand flash '0xef401800' is not yet supported
[ 0.067161]Fail to probe device with blk-spinand
[ 0.176148]Probe device 'sdhci-t113.0' with sdhci-t113
[ 0.181431]Probe device 'rtc-t113.0' with rtc-t113
[ 0.186409]Probe device 'wdg-t113.0' with wdg-t113
[ 0.191140]Probe device 'ldoa' with regulator-t113-ldo
[ 0.196491]Probe device 'ldob' with regulator-t113-ldo
[ 0.201616]Probe device 'led-gpio.0' with led-gpio
[ 0.206625]Probe device 'ledtrigger-heartbeat.0' with ledtrigger-heartbeat
[ 0.229610]Fail to probe device with ts-gt911
[ 0.235192]Probe device 'fb-t113-rgb.0' with fb-t113-rgb
[ 0.240673]Probe device 'console-uart.0' with console-uart
[ 0.247251]mount /private with 'ram' filesystem
Press any key to stop auto boot: 0.000
xboot: /#
@musich
我实际测试下来最高可以跑到
1512M
@musich
我这里测试结果是
CPU_clk=1224MHz
DDR_clk=612MHz
这个可以稳定跑rtt跑awtk,跑完core_mark和memory_perf
看我的跑分
Memory performance testing start...
address: 0x40100000, length: 0x100000, iterations: 200
Data length : 209 MB.
--------------------------------------
8-bit write speed test begin.
Spend time : 0.236000 s.
8-bit write speed: 888.623718 M/s.
8-bit read speed test begin.
Spend time : 0.595000 s.
8-bit Read speed: 352.462494 M/s.
--------------------------------------
16-bit write speed test begin.
Spend time : 0.122000 s.
16-bit write speed: 1718.977051 M/s.
16-bit read speed test begin.
Spend time : 0.350000 s.
16-bit Read speed: 599.186279 M/s.
--------------------------------------
32-bit write speed test begin.
Spend time : 0.104000 s.
32-bit Write speed: 2016.492310 M/s.
32-bit read speed test begin.
Spend time : 0.174000 s.
32-bit Read speed: 1205.259766 M/s.
Memory performance completed.
msh >core_mark
Benchmark started, please make sure it runs for at least 10s.
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 13372
Total time (secs): 13.372000
Iterations/Sec : 3739.156446
Iterations : 50000
Compiler version : GCC6.3.1 20170215 (release) [ARM/embedded-6-branch revision 245512]
Compiler flags :
Memory location : STACK
seedcrc : 0xe9f5
[0]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[0]crcfinal : 0xa14c
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 3739.156446 / GCC6.3.1 20170215 (release) [ARM/embedded-6-branch revision 245512] / STACK
@benlypan
我用bycondcompare看出区别来了,兄弟你懂的真多,
uboot已经跑起来了,现在就是要研究各种配置文件了,感觉uboot结构非常混乱,各种config在各种文件里面满天飞,我是初学者完全搞不懂该去哪里找这个文件
@smiletiger
uboot编译之后,有好几个bin文件,这些bin文件有啥区别
u-boot-nodtb.bin
u-boot-dtb.bin
u-boot.bin
u-boot-sunxi-with-spl.bin
1. 烧哪个文件? u-boot 编译出来一堆东西,其中 u-boot-dtb.bin 才是二进制代码文件,要烧这个
2. 烧到哪里? u-boot 里面符号地址都是固定的,起始地址是 CONFIG_SYS_TEXT_BASE 指定的,所以要烧到这个地址上,然后跳转执行这个地址
兄弟,你的回答解答了我好久的疑问,我终于开始明白了,
在问一下兄弟,哪个CONFIG_SYS_TEXT_BASE 是在哪里配置的,我看到uboot的lds文件里面起始地址是0
@benlypan
谢谢
uboot要能在0x40000000的ddr跑起来,需要编译的时候修改设定什么吗?
先把 boot0 编译到0x30000开始执行
用 xfel 下载调试,完了以后再改回0x20000
编译完 写到 sd卡 或 spi-nand
对于T113_s3 0x30000开始的64K是可以用的boot0不能在DDR运行
u-boot可以在DDR运行
https://whycan.com/files/members/8902/memmap.jpg
谢谢解释,uboot如果要在ddr里面运行,编译uboot的时候要设置什么地方吗?我编译出来的的uboot文件直接用xfel加载到ddr,运行不起来,,串口没有任何输出,但是把他烧录到sd卡却可以跑起来,但是每次改动都要插拔sd卡,太麻烦了,所以如果可以用xfel加载到ddr那真的是非常的方便了
你应该用 sunxi-fel spl,不是 sunxi-fel write。
BROM 分两部分的,直接从 FLASH 上加载不进 FEL,所以没有这个问题。
我看了你发的资料,大致了解了原因了,只能用2000开始的15k空间
uboot可以直接用xfel加载到ddr跑吗
@benlypan
还有突然想起来 那个下载到nor里面上电的时候不是bootrom也是先自己复制到sram内部执行的吗。这个时候并没有分段加载处理的过程啊 这个又怎么回事
@benlypan
我试过f133可以啊 而且我也测试过用一个很小的文件比如2kd文件写入都不行 试过xfel用write不行 试过sunxi-fel。write指令也不行
另外我问一下 我现在主要是想调试uboot 能不能把uboot直接用xfel加载到ddr2里面直接运行
@smiletiger
0x20000 确定还在 SRAM 区域吗?
查看memory分布表在范围内
xfel烧录到t113的0x20000sram失败是怎么回事
> xfel sid
83007000ac144814010008215cca11cb
MuMu@DESKTOP-EOMBNKD C:\Work\myWork\T113\uboot\tools
> xfel read 0x20000 30000 sram.bin
100% [================================================] 29.297 KB, 774.006 KB/s
MuMu@DESKTOP-EOMBNKD C:\Work\myWork\T113\uboot\tools
> xfel read 0x20000 30000 sram.bin
100% [================================================] 29.297 KB, 747.179 KB/s
MuMu@DESKTOP-EOMBNKD C:\Work\myWork\T113\uboot\tools
> xfel version
AWUSBFEX ID=0x00185900(R528/T113) dflag=0x44 dlength=0x08 scratchpad=0x00045000
MuMu@DESKTOP-EOMBNKD C:\Work\myWork\T113\uboot\tools
> xfel sid
83007000ac144814010008215cca11cb
MuMu@DESKTOP-EOMBNKD C:\Work\myWork\T113\uboot\tools
> xfel write 0x20000 boot0_sdcard.bin
usb bulk send error
MuMu@DESKTOP-EOMBNKD C:\Work\myWork\T113\uboot\tools
>
并且写入失败之后就找不到fel设备了 ,需要复位键
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 12751
Total time (secs): 12
Iterations/Sec : 4166
Iterations : 50000
Compiler version : GCC6.3.1 20170215 (release) [ARM/embedded-6-branch revision 245512]
Compiler flags :
Memory location : STACK
seedcrc : 0xe9f5
[0]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[0]crcfinal : 0xa14c
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 4166 / GCC6.3.1 20170215 (release) [ARM/embedded-6-branch revision 245512] / STACK
另外我想问一下,我使用smp和不使用,跑分是一样的,这个smp到底是怎么用的啊,是不是没啥用,在rtt里面建立任务的时候会自动分配cpu还是需要人为去指定
或者能不能一个任务两个核一起来用,
另外在附上memory_perf的分数
MemoryPerf version 1.0.0
Copyright (c) 2022 SummerGift (summergift2019@gmail.com)
Licensed under the MIT License version.
Memory performance testing start...
address: 0x40100000, length: 0x100000, iterations: 200
Data length : 209 MB.
--------------------------------------
8-bit write speed test begin.
[2022-04-18 15:41:26.787]# RECV ASCII>
Spend time : 0.223000 s.
8-bit write speed: 940.426880 M/s.
8-bit read speed test begin.
[2022-04-18 15:41:27.346]# RECV ASCII>
Spend time : 0.559000 s.
8-bit Read speed: 375.161346 M/s.
--------------------------------------
16-bit write speed test begin.
[2022-04-18 15:41:27.472]# RECV ASCII>
Spend time : 0.111000 s.
16-bit write speed: 1889.326050 M/s.
16-bit read speed test begin.
[2022-04-18 15:41:27.802]# RECV ASCII>
Spend time : 0.328000 s.
16-bit Read speed: 639.375610 M/s.
--------------------------------------
32-bit write speed test begin.
[2022-04-18 15:41:27.896]# RECV ASCII>
Spend time : 0.091000 s.
32-bit Write speed: 2304.562744 M/s.
32-bit read speed test begin.
[2022-04-18 15:41:28.067]# RECV ASCII>
Spend time : 0.160000 s.
32-bit Read speed: 1310.719971 M/s.
Memory performance completed.
有没有大神拿其他片子来对比一下,这个a7到底什么水平啊
@aozima
请问哪里可以找到t113用的rtthread,可以分享一下吗
请问一下f133的xboot 的fb驱动能改成16位模式吗,看了下代码是rgb565或者rgb666格式,但是传输的还是4字节数据,能不能只传输16位数据啊,这样性能可以提升一倍,源代码在这里
static inline void f133_de_set_mode(struct fb_f133_rgb_pdata_t * pdat)
{
}
这里是用的还是4字节,
write32((virtual_addr_t)&ui->cfg[0].pitch, 4 * pdat->width);
我自己修改为2字节发现完全不对了,液晶屏分为上下两个屏幕了,而且两个屏幕显示都很虚
以前在keilmdk里面可以用这样的方式
wchar_t*ERR__DETAIL_TBL_CN[2] =
{
L"欠压", L"过压",
};
但是在这个工具链里面不支持L表示方式,会报错,07_AppPrg/main.c(27): error: converting to execution character set: Illegal byte sequence
大家都是怎么来表示中文字符串的呢,
@bigmagic
您好,请问RT中的C906文件夹的内容是哪里来的啊?我在RT官网没找到啊
大哥你也来了啊,哈哈,freertos 177秒宕机问题找到了吗,我这里测试也是177秒死机....一直在研究
支持lvgl这种也就分分钟,作为裸机平台,这个是可以的,反正随意改造,代码足够清晰,不会带你入坑的。
现在学习全志的芯片都是从xboot开始的,但是没有系统学过xboot都是扣驱动和初始化代码用的,惭愧惭愧,看到新出的t113又心动了,不知道和f133比哪个更能打,现在gui主要使用awtk的,xboot是否也可以考虑支持一下啊,实在没有多少精力各种折腾了,
那在官方没出RTOS之前用XBOOT就好了,XBOOT的稳定性应该好点,来看xboot大侠一直都在更新XBOOT
xboot不支持lvgl和awtk等这些gui啊
smiletiger 说:midnight 说:后面提供,有这个计划
太好了 可以问一下大概需要什么时候吗 还有t113能否也安排上
😂 好像有些不对,更多的应该是D1,在等DevTerm的risc-v版本,那个是D1
基本上一样的,就是外设少一点,ddram初始化不一样
后面提供,有这个计划
太好了 可以问一下大概需要什么时候吗 还有t113能否也安排上
@海石生风
你说的都对,但是linux启动太慢,我们需要启动100ms这样的场合,linux根本满足不了需求,在linux和mcu中间还是有rtos这样的生存空间的,rtt也出了rtt smart用来填补这里的空白 ,全志也有自己的melis系统,说明还是有需求的,
https://github.com/bigmagic123/d1-nezha-rtthread 这个是有个兄弟提供的rtthread, 我测试的时候发现经常性的宕机,一直找不到问题,
还找到一个freertos也是运行几分钟就宕机的,有没有能正常用的rtos啊,f133用rtos非常合适啊...难道大家都跑linux?
mepc是出错的指令,每次出错的地方都一样吗?用addr2line看看 0x400152d8 是代码的哪里
用的是这个兄弟的代码
https://github.com/bigmagic123/d1-nezha-rtthread 移植到d1上的,我用的是f133,f133和d1应该是通用的
mepc是出错的指令,每次出错的地方都一样吗?用addr2line看看 0x400152d8 是代码的哪里
0x400152d8: 30009073 csrw mstatus,ra
定位到源代码是这个
.macro RESTORE_ALL
#ifdef ENABLE_FPU
/* restore float register */
mv t2, sp
addi t2, t2, CTX_GENERAL_REG_NR * REGBYTES /* skip all normal reg */
li t0, MSTATUS_FS
csrs mstatus, t0
fld f0, FPU_CTX_F0_OFF(t2)
fld f1, FPU_CTX_F1_OFF(t2)
fld f2, FPU_CTX_F2_OFF(t2)
fld f3, FPU_CTX_F3_OFF(t2)
fld f4, FPU_CTX_F4_OFF(t2)
fld f5, FPU_CTX_F5_OFF(t2)
fld f6, FPU_CTX_F6_OFF(t2)
fld f7, FPU_CTX_F7_OFF(t2)
fld f8, FPU_CTX_F8_OFF(t2)
fld f9, FPU_CTX_F9_OFF(t2)
fld f10,FPU_CTX_F10_OFF(t2)
fld f11,FPU_CTX_F11_OFF(t2)
fld f12,FPU_CTX_F12_OFF(t2)
fld f13,FPU_CTX_F13_OFF(t2)
fld f14,FPU_CTX_F14_OFF(t2)
fld f15,FPU_CTX_F15_OFF(t2)
fld f16,FPU_CTX_F16_OFF(t2)
fld f17,FPU_CTX_F17_OFF(t2)
fld f18,FPU_CTX_F18_OFF(t2)
fld f19,FPU_CTX_F19_OFF(t2)
fld f20,FPU_CTX_F20_OFF(t2)
fld f21,FPU_CTX_F21_OFF(t2)
fld f22,FPU_CTX_F22_OFF(t2)
fld f23,FPU_CTX_F23_OFF(t2)
fld f24,FPU_CTX_F24_OFF(t2)
fld f25,FPU_CTX_F25_OFF(t2)
fld f26,FPU_CTX_F26_OFF(t2)
fld f27,FPU_CTX_F27_OFF(t2)
fld f28,FPU_CTX_F28_OFF(t2)
fld f29,FPU_CTX_F29_OFF(t2)
fld f30,FPU_CTX_F30_OFF(t2)
fld f31,FPU_CTX_F31_OFF(t2)
/* clr FS domain */
csrc mstatus, t0
/* clean status would clr sr_sd; */
li t0, MSTATUS_FS_CLEAN
csrs mstatus, t0
#endif /* ENABLE_FPU */
/* restore general register */
/* resw ra to sepc */
LOAD x1, 0 * REGBYTES(sp)
csrw mepc, x1
LOAD x1, 2 * REGBYTES(sp)
csrw mstatus, x1
LOAD x1, 1 * REGBYTES(sp)
LOAD x3, 3 * REGBYTES(sp)
LOAD x4, 4 * REGBYTES(sp)
LOAD x5, 5 * REGBYTES(sp)
LOAD x6, 6 * REGBYTES(sp)
LOAD x7, 7 * REGBYTES(sp)
LOAD x8, 8 * REGBYTES(sp)
LOAD x9, 9 * REGBYTES(sp)
LOAD x10, 10 * REGBYTES(sp)
LOAD x11, 11 * REGBYTES(sp)
LOAD x12, 12 * REGBYTES(sp)
LOAD x13, 13 * REGBYTES(sp)
LOAD x14, 14 * REGBYTES(sp)
LOAD x15, 15 * REGBYTES(sp)
LOAD x16, 16 * REGBYTES(sp)
LOAD x17, 17 * REGBYTES(sp)
LOAD x18, 18 * REGBYTES(sp)
LOAD x19, 19 * REGBYTES(sp)
LOAD x20, 20 * REGBYTES(sp)
LOAD x21, 21 * REGBYTES(sp)
LOAD x22, 22 * REGBYTES(sp)
LOAD x23, 23 * REGBYTES(sp)
LOAD x24, 24 * REGBYTES(sp)
LOAD x25, 25 * REGBYTES(sp)
LOAD x26, 26 * REGBYTES(sp)
LOAD x27, 27 * REGBYTES(sp)
LOAD x28, 28 * REGBYTES(sp)
LOAD x29, 29 * REGBYTES(sp)
LOAD x30, 30 * REGBYTES(sp)
LOAD x31, 31 * REGBYTES(sp)
addi sp, sp, CTX_GENERAL_REG_NR * REGBYTES
#ifdef ENABLE_FPU
addi sp, sp, CTX_FPU_REG_NR * REGBYTES
#endif
.endm
研究了一个星期找问题一直找不到问题,
Unhandled Exception 5:Load Access Fault
mcause:0x0000000000000005,mtval:0x0000000002500014,mepc:0x00000000400152d8
进场不定时出现这样类似的错误,有时是"Instruction Access Fault",
有时候是"Illegal Instruction",
到底是哪里有问题啊,能不能屏蔽这样的错误啊,好烦躁好烦躁
@smiletiger
已经找到问题了,dram初始化用错了,用了d1的代码
在研究f133裸机启动,参考的是xboot裸机启动代码,在dram里跑代码一切正常,烧录到spi flash里面启动的时候显示
"DRAM only have internal ZQ!!
get_pmu_exist() = 4294967295
ddr_efuse_type: 0xa
ZQ calibration error,check external 240 ohm resistor.
[ERROR DEBUG] auto scan dram rank&width fail !
说什么需要240欧姆电阻,但是我用的已经是240欧姆电阻了啊,谁知道这个是哪里出问题了
@bigmagic
可以研究一下怎么烧入flash开机运行吗,现在这个裸机只能在ddr上面调试
烧录到 flash或者tf卡的文件,需要加魔术头和校验码,否则brom认为是非法的boot0。
请问是用这个 mksunxi吗?但是我运行了bin文件没任何变化
这个之前用在f1c200s上面那个bin是可以的
sudo xfel ddr f133; sudo xfel write 0x40000000 f133.bin; sudo xfel exec 0x40000000;
spi烧录指令如下
sudo xfe spinor write 0 f133.bin
为什么烧录到ddr里面一切正常,烧录到spi里面没有任何反应,重新断电还是进入fel模式,用xfel读取spi的数据发现确实已经烧录进去了,我寄的以前用f1c200s的时候好像有个什么mksunxi这个补丁,我尝试使用这个mksunxi结果却发现生成的f133.bin完全没有变化,不知道该怎么处理了,哪位兄弟知道吗
@bigmagic
大佬怎么不来更新了,也不去github更新啦 ,想死你了
不错谢谢
@bigmagic
f133跑rtt经常会出现这报错
Unhandled Exception 1:Instruction Access Fault
mcause:0x0000000000000001,mtval:0x000000004002fb1c,mepc:0x000000004002fb1c
--------------Dump Registers-----------------
Function Registers:
ra(x1) = 0xb16411401d4de880()
)
gp(x3) = 0x1c0c1d1609056001()
tp(x4) = 0xa0a01b0458959944()
Temporary Registers:
t0(x5) = 0xc99409841cb40d84()
t1(x6) = 0x2811084e1d836415()
t2(x7) = 0x0cc50cc545445525()
t3(x28) = 0x186652b424602c04()
t4(x29) = 0x178059000044cbd5()
t5(x30) = 0xa08009f10d111d83()
t6(x31) = 0x4d0111251891050f()
Saved Registers:
s0/fp(x8) = 0x352819511da41060()
s1(x9) = 0x94141d4501140380()
s2(x18) = 0x14521c57bd3d0b81()
s3(x19) = 0x0581828d1d111d01()
s4(x20) = 0x18b5050121a419b5()
s5(x21) = 0x5c1589ccb0915961()
s6(x22) = 0x0507154311050020()
s7(x23) = 0x9dae00191f100410()
s8(x24) = 0x09959cb008eccd35()
s9(x25) = 0x1c859d2110801085()
s10(x26) = 0x0905d40019538d87()
s11(x27) = 0x511d051890d513e7()
Function Arguments Registers:
a0(x10) = 0x1dc6450144144980()
a
1(x11) = 0x1d91093038315db3()
a2(x12) = 0x90a41e3d808b4c96()
a3(x13) = 0x0d28148c99e02c85()
a4(x14) = 0x0590238b0f1401b9()
a5(x15) = 0x7d091d155b0c4100()
a6(x16) = 0x0c87182739a51a11()
a7(x17) = 0x2d03208419851495()
sstatus = 0x0000000a00b00080
Supervisor Interrupt Disabled
Last Time Supervisor Interrupt Disabled
Last Privilege is User Mode
Not Permit to Access User Page
Not Permit to Read Executable-only Page
satp = 0x0000000000000000
Mode = No Address Translation/Protection Mode
-----------------Dump OK---------------------
可能是哪里有问题哦用的o3优化
@bigmagic
大佬能否研究一下f133的mpu,现在我有个问题解决不了,在跑lvgl或者awtk的时候,特别是动画的时候,比如指针旋转,那么指针会无规律的出现毛刺,应该是dcache引起的,我把dcache关闭就正常了,但是帧率惨不忍睹,开了dcache就发现这个毛刺问题,理论上我也没有用到dma,不知道为什么会导致dcache不一致的,能否指点一下该怎么去操作
看了很多开源的原理图发现好几种不同的接法看f133的数据手册里面介绍的也自我矛盾了 我自己按照低位接法发现16位数据不正常 到底怎么个接法啊
确实是cache的问题,需要开启dcache后,内存访问速度可以大幅提高
我这里不是dcache的问题哦,你可以试试,在xboot里面开启dcache的时间是2.xms,关闭dcache的时间是4.xms,性能大概差一倍左右而已,
有可能DDR2要重新初始化吧,不晓得是不是xfel初始化DDR速率没有最高,如果在sram中测试,不知道会不会好一点,看有没有人能够分析一下问题,我也弄不懂了
我打印过ddr寄存器的时钟配置,的确是500多m的配置,也不会是这个问题把,我试试看能不能跑ram里面试试看
我在lcd驱动里面,无效了cache所有内存,另外,进行点灯测试时,可不用rt pin框架,直接调用gpio底层接口,目前180ms写内存肯定是不合理的
应该不是cache的原因,也不会是rtt io框架的问题,我直接write32一样的结果,哪怕我把内存操作去掉,直接while里面操作io高低操作,测试下来都有都有2ms多,
rtt目前没有开cache,你可以开启cache测试一下
你裸机里面开了cache吗?
f133 lcd 相关的测试,你慢慢测试一下,我都开源了
出于好奇,特地跑了一下xboot,在xboot里面用同样的代码,测试了一下发现速度是rtt中的几十倍,,大佬是否可以看看是不是rtt移植上的问题,因为你说你在裸机里面跑是正常的,但是我都是在你开源rtt上跑的,发现了问题
可以看到这个速度才是正常的刷屏速度,只要1.8ms,,1280*720 16位刷一屏幕只要1.8ms
一个要400ms一个只要1.8ms,这个性能差200倍啊
这个是xboot里面的测试代码
while(1)
{
uint32_t len;
uint16_t *pbuf=0x42000000;
for(len=0;len<1280*720;len++)
{
*(pbuf+len)=0x00f0;
}
gpio_set_value(F133_GPIOG13,1);//bl
for(len=0;len<1280*720;len++)
{
*(pbuf+len)=0x00f0;
}
gpio_set_value(F133_GPIOG13,0);//bl
}
用led高低电平配合逻辑分析仪来测试的
f133 lcd 相关的测试,你慢慢测试一下,我都开源了
当然我用的是windows下面的编译器,用的你百度云盘里面那个\riscv64-unknown-elf
f133 lcd 相关的测试,你慢慢测试一下,我都开源了
我用你最新的程序编译了一下,并且点了个灯,测试程序如下,测试结果点灯的频率为看图
int main(void)
{
printf("Hello RISC-V!\n");
int led_pin = rt_pin_get("PG.13");
rt_pin_mode(led_pin, PIN_MODE_OUTPUT);
while(1)
{
uint32_t len;
uint16_t *pbuf=0x42000000;
for(len=0;len<1280*720;len++)
{
*(pbuf+len)=0x00f0;
}
rt_pin_write(led_pin, 1);
for(len=0;len<1280*720;len++)
{
*(pbuf+len)=0x00f0;
}
rt_pin_write(led_pin, 0);
}
while(1)
{
rt_pin_write(led_pin, 1);
rt_thread_mdelay(500);
rt_pin_write(led_pin, 0);
rt_thread_mdelay(500);
}
return 0;
}
问题在哪里?????????????
f133 lcd 相关的测试,你慢慢测试一下,我都开源了
好的,谢谢哦,唉我自己根据xboot移植了好几个晚上的fb,你这里居然都更新了,哈哈哈,大佬感谢,我晚上测试下
https://whycan.com/files/members/459/lcd.mp4
没有那么夸张,我裸机操作f133 lcd驱动刷新,从memcpy到刷新lcd,差不多3ms,如果采用纯c语言的memcpy,差不多一帧图形是17ms。
lcd 尺寸 800*480
bpp 32
大佬 我用的就是你开源的那个rtt移植代码。你能帮我分析下是哪里的问题吗 开rtt和裸机都是这么慢 cpu寄存器什么的打印出来的确是1008m 没有分频
是不是没有平台优化哦,你用newlib的汇编试一下哇
其实我用的说for循环赋值测试fb 结果发现液晶屏居然刷一屏幕需要2秒 之前用f1c100只要10ms就够了 好不容易搞定f133的fb 结果发现速度还不如100s 是不是现在f133的开发环境特别是裸机还没有完善啊
f133跑rtt测试了下memcpy速度那么慢的吗,cpu是1.2g的,比1.5g的f1c100s慢10倍以上,是哪里有问题啊
@shaoxi2010
awtk的三缓冲我已经用上了,就是测试下来,还是lvgl的效率高多了,但是awtk的上位机真的太好用了,所以就抛弃lvgl了,f1c基本上可以满足,但是我就是想让用户体验更好点,想试试更好的芯片,同时因为用的mipi,所以如果用f133还可以省一个rgb->mipi芯片
还有,为啥不选个横屏呢,这种奇怪得应用我记得只在mipi上常见,还是说成本控制原因
用的手机屏,手机屏一般都是竖屏,因为便宜啊,同样型号的工业横屏要100,这个只要30多
@shaoxi2010
谢谢你的回答,我主要应用是驱动720*1280的5.5寸竖屏,但是ui是用横屏的,目前我用fs100c+rtt+awtk做可以跑50帧,目标想到60帧率,而且fs100c我超频到了1.5g,所以想找个性能更强的,目前就在v3s和f133之间徘徊,板子我都做了,还没到,所以想问问用哪个比较合适,
我都是拿来跑rtt的,因为有启动时间要求,要求在0.5s内显示界面,所以linux排除了
@shaoxi2010
我突然还想到一点,f133有G2D,硬件加速,支持硬件旋转,v3s没有硬件加速,这样一对比,f133图形性能比v3s好多了吧
@shaoxi2010
好的,谢谢,那先用v3s好了,刚出来的东西等他成熟了在研究
eabi指的是abi的借口调用规则,和硬件浮点没关系啊,你打开优化选项就行了
可是xboot编译v3s用的是arm-none-linux-gnueabihf这个带硬件浮点的编译器啊,而且我看坛友里面有人测试过编译器影响很大
f133和v3s 哪个性能比较好,在f133和v3s之间徘徊,不知道哪个性能比较好一点,主要用来跑ui,
arm-none-eabi应该通吃的,我内核v3s和f1c都用这个,省事
但是不支持硬件浮点啊,效率低很多
在论坛混了1一个月,折腾完毕了f1c100s,把f1c100s超频到了1.5g 504M ddr,跑rtt+awtk lcd用的分辨率是1280x720 发现帧率50多,感觉还是比较慢,又打算折腾v1s,,找了圈资料发现一个v3s移植rtt的工程文件,,现在有个疑问,就是v3s+rtt用的是和f1c100s一样的编译器 arm-none-eabi来编译的,并且能编译成功过,但是v3s不是有硬件fp吗,这样的话不是不能使用硬件fp了吗,我更改了编译器用arm-none-linux-gnueabihf编译,发现编译不能通过,
以上编译都是在windows环境下,在keil环境里面编译的,现在的疑问是用arm-none-eabi来编译v3s可行吗,因为v3s还在做板子还没有拿到手
@lg676041036
确定没问题,还可以加的更高 2.0v都可以,不过温度就高点了,1.8v完全没温度
@armstrong
static void lv_refr_vdb_rotate(lv_area_t * area, lv_color_t * color_p)
{
lv_disp_drv_t * drv = &disp_refr->driver;
if(lv_disp_is_true_double_buf(disp_refr) && drv->sw_rotate) {
LV_LOG_ERROR("cannot rotate a true double-buffered display!");
这个是lvtl7.11的源代码,而且7.11里面没有display_driver.full_refresh = 1; /* 双完整帧缓存模式需要置1 */这个功能,
不知道8.0以上能不能支持旋转90的双缓冲
我仔细看了一下源代码,好像如果液晶屏旋转90度也就是从竖屏改成横屏,全尺寸双缓冲就不支持了..............哭...
f1c100s跑rttt+lvgl画面有撕裂感,已经启用了双缓冲模式,
flush函数如下,在这个函数print发现每次这个函数的area并不是液晶屏的尺寸,而是控件的尺寸,不是说定义了2个全尺寸的缓冲区之后每次都会全屏刷新的吗,
static void disp_flush(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p)
{
int32_t x;
int32_t y;
for (y = area->y1; y <= area->y2; y++)
{
for (x = area->x1; x <= area->x2; x++)
{
/* Put a pixel to the display. For example: */
/* put_px(x, y, *color_p)*/
((uint16_t *)lcd_layer0.vram)[y * lcd_layer0.width + x] = color_p->full;
color_p++;
}
}
另外f1c100s用lvgl或者awtk有撕裂感,已经用了双缓冲 了,不知道该怎么解决了
f1c100s能不能移植touchgfx哦,touchgfx不开源,st还没有arm9的核,是不是不太可能实现了啊
难道瓶颈在awtk? stm32我用的是touchgfx, stmh7系列跑500M,
你们都觉得arm926 比stm32 M7不会差?这差了好几代了吧,m7很强大的,
@smiletiger
f1c100s的I和D cache打开了吗?还有DDR频率是否设到了240/480Mhz。
有可能瓶颈在DDR带宽上,你光调CPU频率是没用的。你M7的SDRAM是32bit,带宽确实高些。F1C100S是16bit DDR
rtt自动打开I和D cache的吧 DDR频率为504Mhz
f1c100s跑rtt需要自己手动打开d和i吗 用这个"sys_mmu_init" ??
这么大的屏幕,M7会顺滑?M7的SDRAM带宽都不够吧
如果不使用旋转动画,1280*720的屏幕在f1c100s上跑lvgl可以到100帧很流畅,但是因为屏幕本身是竖屏,lvgl里面配置成横屏,本身就已经丧失了很多性能,因为屏幕不支持硬件横屏,然后跑旋转动画的时候基本上就勉强60帧了,但是在awtk下面太惨了,只有30多帧
当然之前用的m7 都知道现在涨上天了,所以想用f1c100s来替代,结果可能不太行,m7还是强大
楼主,你是用f1c100驱动1280x720的TTL屏吗?
好像没看到过f1c100搞这么大的分辨率
我点的是1280X720的mipi屏幕,用的rgb转mipi,
M7 8M 32bit sdram
顺滑的不是一点两点
我忘了说我的液晶屏是1280*720的了,16位 lvgl还行,就是awtk好卡
请问管理员,这个可以跑rtos吗,还是必须linux
能裸机跑rtos和lvgl吗
刚刚入坑,自己做了f1c100s的pcb,一次性成功 并且研究了rtt+lvgl和rtt+awtk,发现都比较卡,f1c100s都超频到1.44G了,以前用400M的m7 ,丝滑的一比,cpu占用率才10% ,现在用f1c100s来做,60帧下面,cpu占用率60% ,而且比较卡,
试试看,不知道速速度能增加多少
现在的d1s不知道行不行
加了电压吗?不加电压,我最多跑到900Mhz就不稳定了
怎么证明确实跑到这么快,有性能测试吗?
core 1.8V ddr 2.6V
哈哈跑跑应用看会不会飞
其实已经测试了好几天了,我用1.44G和508M的配置,老化了好几天了,一直没问题,跑的awtk和lvgl两个demo,
\ | /
- RT - Thread Operating System
/ | \ 4.1.0 build Dec 7 2021 20:20:18
2006 - 2021 Copyright by rt-thread team
[32m[I/SFUD] Find a Winbond flash chip. Size is 16777216 bytes.[0m
[32m[I/SFUD] w25qxx flash device is initialize success.[0m
[32m[I/SFUD] Probe SPI flash w25qxx by SPI device spi00 success.[0m
Start...
CPU_RET=90000F30
CPU_get_clk:1536M
DDR_get_pll_clk:528M
PERIPH_get_pll_clk:600M
AHB_get_clk:200M
APB_get_clk:100M
sfud device name: w25qxx, sector_count: 4096, bytes_per_sector: 4096, block_size: 4096.
我如果不想用libc.a里面自带的memcpy函数,因为我自己有跟高效的memcpy 但是又想使用其他libc.a里面的库函数,谁知道怎么做吗
PS对图片做处理呀,处理好后再给lvgl。TOUCHGXF应该是软件做抖动处理了。
已经通过外部软件做抖动处理解决了,基本上和touchgfx差不多了
手指放上去就要生成新的帧,就要耗费CPU + DRAM带宽,帧的生成速度降低不是正常现象么?
问题是触摸的部分是无效触控区,没有对应的控件操作,
谁用过awtk啊,帧率稳定在62帧,只要用手指在触摸屏上面任意点击,帧率就降为40帧
一直困扰了好久了,本来想用awtk开发的,因为他的上位机实在太好用了,但是这个问题一直搞不定,触摸区域只要在窗体上,就会帧率降低,很明显引起动画卡顿
我找来了用touchgfx做的界面了,液晶屏是rgb565 16线的,
f1c100s用的还是rgb666 18线,效果完全不能比,我看f1c100s资料里面说支持rgb565抖动模式 ,但是没有找到对应寄存器,lvgl官网的图片转换程序里面勾选抖动和不勾选抖动,出来的c数组都完全一样,不知道是不是lvgl哪里的bug
上图是电脑截屏,下图是实际LCD屏,效果明显不同。
我的意思是我另外一个板子用touchgfx做的,液晶屏实际上接线也是565,效果就是好电脑上的效果
设置到原来的10倍也还是不行,最后没办法试了下lvgl7.11,居然可以用了,先用了再说,
f1c100s+lvgl 渐变色显示效果那么差的吗,,移植了lvgl,硬件连接使用RGB666连接 ,lvgl配置为16位色,下载到液晶屏里面效果好差,之前用的stm32+touchgfx使用的还是RGB565,效果完全可以和手机一样,不知道为什么lvgl效果那么差,
大家看看原图第一张,之前用touchgfx就是那个效果,第二个图就是lvgl的效果,这中间 的一圈圈渐变太难受了,lvgl字体显示也比较毛刺,
创建任务代码如下
rt_thread_t tid;
tid = rt_thread_create("GUI_Lvgl", thrd_LVGL_Loop, RT_NULL, RT_LVGLLOOP_THREAD_STACK_SIZE, 8, 20);
RT_ASSERT(tid != RT_NULL);
rt_thread_startup(tid);
rt_kprintf("[Thread]GUIThread Created.\n");
f1c100s+rtt+lvgl8.0出现了诡异的问题,之前用lv6.1的时候一切正常,然后因为要用到旋转功能,就用了8.0,结果发现一个诡异的问题
static void thrd_LVGL_Loop(void *parameter)
{
while (1)
{
//rt_kprintf("thrd_LVGL_Loop1\n");
lv_task_handler();
rt_thread_delay(10);
//rt_kprintf("AutoIncData=%d\n", AutoIncData);
}
}
在rtt任务中,只要调用rt_thread_delay(x)就会出错,把tr_thread_delay注释掉就一切正常,报错的串口输出如下
\ | /
- RT - Thread Operating System
/ | \ 4.0.1 build Nov 21 2021
2006 - 2019 Copyright by rt-thread team
[SFUD] Find a Winbond flash chip. Size is 16777216 bytes.
[SFUD] gd25qxx flash device is initialize success.
Start...
PERIPH_get_pll_clk:600M
CPU_get_clk:704M
AHB_get_clk:2
00M
APB_get_clk:100M
[Thread]GUIThread Created.
msh />Execption:
r00:0x00000000 r01:0x18e0ffe0 r02:0x11810858 r03:0x00000000
r04:0x8007071c r05:0x00000000 r06:0x00000003 r07:0x8080135c
r08:0x00000004 r09:0xffffffff r10:0x00000000
fp :0x00000004 ip :0x8007071c
sp :0x80000594 lr :0x80160204 pc :0x80160204
cpsr:0x20000013
undefined instruction
thread - GUI_Lvgl stack:
thread pri status sp stack size max used left tick error
-------- --- ------- ---------- ---------- ------ ---------- ---
GUI_Lvgl 8 running 0x00000084 0x00000800 62% 0x0000000d 000
tshell 20 init 0x00000134 0x00001000 07% 0x0000000a 000
mmcsd_de 22 suspend 0x000000c8 0x00000800 09% 0x00000014 000
tidle0 31 ready 0x00000050 0x00000100 43% 0x00000016 000
shu
请问这个是哪里有问题啊
请问有lvgl8.0+rtt的f1c200s历程吗,我一直搞不定,一直报错 6.1.1已经跑通了
8.0出错如下
\ | /
- RT - Thread Operating System
/ | \ 4.0.1 build Nov 21 2021
2006 - 2019 Copyright by rt-thread team
[SFUD] Find a Winbond flash chip. Size is 16777216 bytes.
[SFUD] gd25qxx flash device is initialize success.
Start...
PERIPH_get_pll_clk:600M
CPU_get_clk:704M
AHB_get_clk:200M
APB_get_clk:100M
[2021-11-21 02:10:23.319]# RECV ASCII>
[Thread]Uart2Rec Created.
[Thread]VirCursor Created.
msh />[Thread]GUIThread Created.
lv_example_switch_1
thrd_LVGL_Loop1
Execption:
r00:0x4046af5a r01:0xe9ec686c r02:0x804bd2dc r03:0x00000000
r04:0x800b0a5c r05:0x800b0368 r06:0x000001df r07:0x000001e0
r08:0x00000000 r09:0x00000000 r10:0x8080393c
fp :0x000001e0 ip :0x000000cd
sp :0x80000594 lr :0x804bd75c pc :0x804bd75c
cpsr:0xa0000013
undefined instruction
thread - GUI_Lvgl stack:
thread pri status sp stack size max used left tick error
-------- --- ------- ---------- ---------- ------ ---------- ---
GUI_Lvgl 11 ready 0x00000044 0x00001000 07% 0x00000012 000
VirCurso 29 suspend 0x0000008c 0x00000800 06% 0x00000014 000
Uart2Rec 10 suspend 0x000000ac 0x00000800 08% 0x00000014 000
tshell 20 suspend 0x00000134 0x00001000 07% 0x0000000a 000
mmcsd_de 22 suspend 0x000000c8 0x00000800 09% 0x00000014 000
tidle0 31 ready 0x00000050 0x00000100 46% 0x0000000e 000
main 10 close
[2021-11-21 02:10:23.380]# RECV ASCII>
0x00000060 0x00000800 26% 0x00000007 000
shutdown...
出错代码在这个地方
while (1)
{
rt_kprintf("thrd_LVGL_Loop1\n");
lv_task_handler();
rt_thread_delay(5);
rt_kprintf("thrd_LVGL_Loop2\n");
}
}
""lv_task_handler();""进入到这里就死了,跟踪进去,是在这个地方死机的
do {
timer_deleted = false;
timer_created = false;
LV_GC_ROOT(_lv_timer_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_timer_ll));
while(LV_GC_ROOT(_lv_timer_act)) {
/*The timer might be deleted if it runs only once ('repeat_count = 1')
*So get next element until the current is surely valid*/
next = _lv_ll_get_next(&LV_GC_ROOT(_lv_timer_ll), LV_GC_ROOT(_lv_timer_act));
if(lv_timer_exec(LV_GC_ROOT(_lv_timer_act))) {
/*If a timer was created or deleted then this or the next item might be corrupted*/
if(timer_created || timer_deleted) {
TIMER_TRACE("Start from the first timer again because a timer was created or deleted");
break;
}
}
LV_GC_ROOT(_lv_timer_act) = next; /*Load the next timer*/
}
这里 if(lv_timer_exec(LV_GC_ROOT(_lv_timer_act)))没返回死机了
请问裸机f1c100s+lvgl可以屏幕旋转90°吗,我限制已经实现了lvgl裸机了,屏幕分辨率是1280*720,但是屏幕是竖屏,不知道怎么样才可以改成横屏,屏幕的驱动器本身不支持90°旋转,,lvgl用的是6.1 ,
C:\Work\myWork\F1C200S\f1c100s_keil\f1c100s_keil>.\Tools\sunxi-fel.exe spl .\Objects\f1c100s.bin
U-Boot header CRC mismatch: expected 3104a0e1, got ae275010
C:\Work\myWork\F1C200S\f1c100s_keil\f1c100s_keil>.\Tools\sunxi-fel.exe -p write 0x80000000 .\Objects\f1c100s.bin
100% [================================================] 42 kB, 352.6 kB/s
C:\Work\myWork\F1C200S\f1c100s_keil\f1c100s_keil>.\Tools\sunxi-fel.exe exec 0x80000000
能不能帮我看下是什么问题
在全志芯片F1C100S/V3S/V831上实现裸机加密方案,防盗版进行时(不采用专用加密芯片)。
https://whycan.com/t_6507.html
谢谢,我看一下
想问一下f1c100s的代码是在外边flash里面的,怎么加密呢,是不是只要把flash复制一下,就可以直接拿来用了,那么辛辛苦苦开发的成果不是就被窃取了吗
miniusb用一段时间保证接触不良,typec正反擦,谁用谁知道
我发现好多人画板子喜欢用miniusb口,为什么不用typec,
延时是个大问题
非常不错,不知道有没有人移植touchgfx到f1c100s上
感谢楼主,我也是玩smt32长大的
f1c100s晶振必须是24M吗,要不然连不上usb是吗?
恐怖,吓得哆嗦
会不会是24M晶振的问题,我用25M晶振代替了,好像usb用的是48M晶振,是不是这个24M晶振是必须的
是芯片没有焊好?但是我插入usb可以识别到啊,而且ver命令不是又返回吗?
C:\Work\myWork\F1C200S\f1c100s_keil\f1c100s_keil\Tools>sunxi-fel sid
SID registers for your SoC (F1C100s) are unknown or inaccessible.
C:\Work\myWork\F1C200S\f1c100s_keil\f1c100s_keil\Tools>sunxi-fel ver
AWUSBFEX soc=00001663(F1C100s) 00000001 ver=0001 44 08 scratchpad=00007e00 00000000 00000000
为什么这里sid命令无法识别呢
demo板子回来了,用锡膏自己贴的,一次性成功
我也是,但是我会自己画pcb
谢谢各位朋友指点,这就去做个f1c200s的demo板子测试下
所以如果用linux加qt就做不到秒开是吗,只能裸奔跑lvgl这种gui是吗
请问一下用全志f1c200s或者其他型号的跑ui可以做到秒开吗,因为是一个电瓶车仪表,所以需要通电1-2秒就要显示画面,之前用的m7单片机做的,可以实现秒开,屏幕分辨率是1280*720,因为现在m7的mcu买不到了,所以想改用全志的soc,因为全志是跑linux加qt,不知道能不能实现秒开秒显示功能,或者用freertos加lvgl可以做到这样的秒开吗,用过f1c200s的朋友,你们从通电到显示ui大概需要多少时间呢,能否告知一下,
页次: 1