页次: 1
跟晕哥上车。
已收藏,多谢。
zadig安装了没有?
晕哥 说:hzpyl 说:请问楼主
这个文件rttbootloader_f1c100s_v1.0.0.bin 是从什么地方来的? 有没有更新的?昨天我给楼主留言了,可能忙没有回应。
https://whycan.cn/t_938.html
https://whycan.cn/files/members/718/rttbootloader_f1c100s_v1_0_0.zip晕哥,这2个rttbootloader_f1c100s_v1.0.0.bin,我对比了,是一样的。
感觉f1c100s,还是跑rtos更合适一些。
hzpyl 说:请问 九霄云外
用全志F1C100S,是不是用melis比较好?
因为我看RT-Thread的液晶驱动等,好像没有。
这个一看你熟悉什么系统,想省时间快量产melis(也就是UCOS+类linux驱动+minigui的架构)相对成熟些,想省成本或者不想处处受技术支持的限制自己开发用linux, rtt呢我是不太建议用的,必竟很多驱动都没有也没太多人一起完善
柿饼没什么好搞的,就是个串口屏。
不要搞这个,浪费时间。
rttbootloader下载,没有搞定
烧入rttbootloader,打开串口终端工具。上电,按Enter键进入烧写模式,可以将app.bin烧入。有份详细文档,自己看吧。
预定两块。
厉害,在群里见过,效果非常好。
f1c100s单片机在bootloader程序里如何把APP的bin文件拷贝到内存0x80000000处运行,应该怎么操作?
其中,app的bin文件,在link.ld里已将地址设置为0x80000000。
问题在这里,导致了spl size的异常。
* (.vector)
jin_boot0_start.o (.text)
vector好像没必要放在这里吧
jin_boot0_start.o放在最前面
非常好。
这个是裸机的,请问想在 RT-Thread上跑,启动文件和链接文件该怎么修改?
下面这个是RT-Thread官方写的,项目地址:https://github.com/RT-Thread/rt-thread/tree/master/bsp/allwinner_tina
只能在内存里跑,不能从flash启动。
方法如下:
sudo sunxi-fel -p write 0x00000000 tina-spl.bin
sudo sunxi-fel exec 0x00000000
sudo sunxi-fel -p write 0x80000000 rtthread.bin
sudo sunxi-fel exec 0x80000000
tina-spl.bin是由开源项目https://github.com/uestczyh222/tina-spl.git 编译得到的bin文件。
start_gcc.S:
/*
* File : start_gcc.S
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2013-2018, RT-Thread Development Team
*/
.equ MODE_USR, 0x10
.equ MODE_FIQ, 0x11
.equ MODE_IRQ, 0x12
.equ MODE_SVC, 0x13
.equ MODE_ABT, 0x17
.equ MODE_UND, 0x1B
.equ MODE_SYS, 0x1F
.equ MODEMASK, 0x1F
.equ NOINT, 0xC0
.equ I_BIT, 0x80
.equ F_BIT, 0x40
.equ UND_STACK_SIZE, 0x00000100
.equ SVC_STACK_SIZE, 0x00000100
.equ ABT_STACK_SIZE, 0x00000100
.equ FIQ_STACK_SIZE, 0x00000100
.equ IRQ_STACK_SIZE, 0x00000100
.equ SYS_STACK_SIZE, 0x00000100
/*
***************************************
* Interrupt vector table
***************************************
*/
.section .vectors
.code 32
.global system_vectors
system_vectors:
ldr pc, _vector_reset
ldr pc, _vector_undef
ldr pc, _vector_swi
ldr pc, _vector_pabt
ldr pc, _vector_dabt
ldr pc, _vector_resv
ldr pc, _vector_irq
ldr pc, _vector_fiq
_vector_reset:
.word reset
_vector_undef:
.word vector_undef
_vector_swi:
.word SVC_Handler
_vector_pabt:
.word vector_pabt
_vector_dabt:
.word vector_dabt
_vector_resv:
.word vector_resv
_vector_irq:
.word vector_irq
_vector_fiq:
.word vector_fiq
.balignl 16,0xdeadbeef
/*
***************************************
* Stack and Heap Definitions
***************************************
*/
.section .data
.space UND_STACK_SIZE
.align 3
.global und_stack_start
und_stack_start:
.space ABT_STACK_SIZE
.align 3
.global abt_stack_start
abt_stack_start:
.space FIQ_STACK_SIZE
.align 3
.global fiq_stack_start
fiq_stack_start:
.space IRQ_STACK_SIZE
.align 3
.global irq_stack_start
irq_stack_start:
.skip SYS_STACK_SIZE
.align 3
.global sys_stack_start
sys_stack_start:
.space SVC_STACK_SIZE
.align 3
.global svc_stack_start
svc_stack_start:
/*
***************************************
* Startup Code
***************************************
*/
.section .text
.global reset
reset:
/* Enter svc mode and mask interrupts */
mrs r0, cpsr
bic r0, r0, #MODEMASK
orr r0, r0, #MODE_SVC|NOINT
msr cpsr_cxsf, r0
/* init cpu */
bl cpu_init_crit
/* todo:copyself to link address */
/* Copy vector to the correct address */
ldr r0, =system_vectors
mrc p15, 0, r2, c1, c0, 0
ands r2, r2, #(1 << 13)
ldreq r1, =0x00000000
ldrne r1, =0xffff0000
ldmia r0!, {r2-r8, r10}
stmia r1!, {r2-r8, r10}
ldmia r0!, {r2-r8, r10}
stmia r1!, {r2-r8, r10}
/* turn off the watchdog */
ldr r0, =0x01C20CB8
mov r1, #0x0
str r1, [r0]
/* mask all IRQs source */
ldr r1, =0xffffffff
ldr r0, =0x01C20430
str r1, [r0], #0x04
str r1, [r0]
/* Call low level init function */
ldr sp, =svc_stack_start
ldr r0, =rt_low_level_init
blx r0
/* init stack */
bl stack_setup
/* clear bss */
mov r0, #0
ldr r1, =__bss_start
ldr r2, =__bss_end
bss_clear_loop:
cmp r1, r2
strlo r0, [r1], #4
blo bss_clear_loop
/* call c++ constructors of global objects */
/*
ldr r0, =__ctors_start__
ldr r1, =__ctors_end__
ctor_loop:
cmp r0, r1
beq ctor_end
ldr r2, [r0], #4
stmfd sp!, {r0-r1}
mov lr, pc
bx r2
ldmfd sp!, {r0-r1}
b ctor_loop
ctor_end:
*/
/* start RT-Thread Kernel */
ldr pc, _rtthread_startup
_rtthread_startup:
.word rtthread_startup
cpu_init_crit:
/* invalidate I/D caches */
mov r0, #0
mcr p15, 0, r0, c7, c7, 0
mcr p15, 0, r0, c8, c7, 0
/* disable MMU stuff and caches */
mrc p15, 0, r0, c1, c0, 0
bic r0, r0, #0x00002300
bic r0, r0, #0x00000087
orr r0, r0, #0x00000002
orr r0, r0, #0x00001000
mcr p15, 0, r0, c1, c0, 0
bx lr
stack_setup:
/* Setup Stack for each mode */
mrs r0, cpsr
bic r0, r0, #MODEMASK
orr r1, r0, #MODE_UND|NOINT
msr cpsr_cxsf, r1
ldr sp, =und_stack_start
orr r1, r0, #MODE_ABT|NOINT
msr cpsr_cxsf, r1
ldr sp, =abt_stack_start
orr r1, r0, #MODE_IRQ|NOINT
msr cpsr_cxsf, r1
ldr sp, =irq_stack_start
orr r1, r0, #MODE_FIQ|NOINT
msr cpsr_cxsf, r1
ldr sp, =fiq_stack_start
orr r1, r0, #MODE_SYS|NOINT
msr cpsr_cxsf,r1
ldr sp, =sys_stack_start
orr r1, r0, #MODE_SVC|NOINT
msr cpsr_cxsf, r1
ldr sp, =svc_stack_start
bx lr
/*
***************************************
* exception handlers
***************************************
*/
.global rt_hw_trap_udef
.global rt_hw_trap_swi
.global rt_hw_trap_pabt
.global rt_hw_trap_dabt
.global rt_hw_trap_resv
.global rt_hw_trap_irq
.global rt_hw_trap_fiq
.global rt_interrupt_enter
.global rt_interrupt_leave
.global rt_thread_switch_interrupt_flag
.global rt_interrupt_from_thread
.global rt_interrupt_to_thread
/* Interrupt */
.align 5
vector_fiq:
stmfd sp!,{r0-r7,lr}
bl rt_hw_trap_fiq
ldmfd sp!,{r0-r7,lr}
subs pc, lr, #4
.align 5
vector_irq:
stmfd sp!, {r0-r12,lr}
bl rt_interrupt_enter
bl rt_hw_trap_irq
bl rt_interrupt_leave
ldr r0, =rt_thread_switch_interrupt_flag
ldr r1, [r0]
cmp r1, #1
beq rt_hw_context_switch_interrupt_do
ldmfd sp!, {r0-r12,lr}
subs pc, lr, #4
rt_hw_context_switch_interrupt_do:
mov r1, #0
str r1, [r0]
mov r1, sp
add sp, sp, #4*4
ldmfd sp!, {r4-r12,lr}
mrs r0, spsr
sub r2, lr, #4
msr cpsr_c, #I_BIT|F_BIT|MODE_SVC
stmfd sp!, {r2}
stmfd sp!, {r4-r12,lr}
ldmfd r1, {r1-r4}
stmfd sp!, {r1-r4}
stmfd sp!, {r0}
ldr r4, =rt_interrupt_from_thread
ldr r5, [r4]
str sp, [r5]
ldr r6, =rt_interrupt_to_thread
ldr r6, [r6]
ldr sp, [r6]
ldmfd sp!, {r4}
msr spsr_cxsf, r4
ldmfd sp!, {r0-r12,lr,pc}^
/* Exception */
.macro push_svc_reg
sub sp, sp, #17 * 4
stmia sp, {r0 - r12}
mov r0, sp
mrs r6, spsr
str lr, [r0, #15*4]
str r6, [r0, #16*4]
str sp, [r0, #13*4]
str lr, [r0, #14*4]
.endm
.align 5
.weak SVC_Handler
SVC_Handler:
vector_swi:
push_svc_reg
bl rt_hw_trap_swi
b .
.align 5
vector_undef:
push_svc_reg
bl rt_hw_trap_udef
b .
.align 5
vector_pabt:
push_svc_reg
bl rt_hw_trap_pabt
b .
.align 5
vector_dabt:
push_svc_reg
bl rt_hw_trap_dabt
b .
.align 5
vector_resv:
push_svc_reg
bl rt_hw_trap_resv
b .
link.lds:
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
SECTIONS
{
. = 0x80000000;
. = ALIGN(4);
__text_start = .;
.text :
{
*(.vectors)
*(.text)
*(.text.*)
KEEP(*(.fini))
/* section information for finsh shell */
. = ALIGN(4);
__fsymtab_start = .;
KEEP(*(FSymTab))
__fsymtab_end = .;
. = ALIGN(4);
__vsymtab_start = .;
KEEP(*(VSymTab))
__vsymtab_end = .;
. = ALIGN(4);
/* section information for modules */
. = ALIGN(4);
__rtmsymtab_start = .;
KEEP(*(RTMSymTab))
__rtmsymtab_end = .;
/* section information for initialization */
. = ALIGN(4);
__rt_init_start = .;
KEEP(*(SORT(.rti_fn*)))
__rt_init_end = .;
} =0
__text_end = .;
__rodata_start = .;
.rodata : { *(.rodata) *(.rodata.*) *(.eh_frame) }
__rodata_end = .;
. = ALIGN(4);
.ctors :
{
PROVIDE(__ctors_start__ = .);
*crtbegin.o(.ctors)
*crtbegin?.o(.ctors)
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
*(SORT(.ctors.*))
*(.ctors)
PROVIDE(__ctors_end__ = .);
}
.ARM.extab :
{
*(.ARM.extab* .gnu.linkonce.armextab.*)
}
/* The .ARM.exidx section is used for C++ exception handling. */
/* .ARM.exidx is sorted, so has to go in its own output section. */
__exidx_start = .;
ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
/* This is used by the startup in order to initialize the .data secion */
_sidata = .;
}
__exidx_end = .;
.dtors :
{
PROVIDE(__dtors_start__ = .);
*crtbegin.o(.dtors)
*crtbegin?.o(.dtors)
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
*(SORT(.dtors.*))
*(.dtors)
PROVIDE(__dtors_end__ = .);
}
__data_start = .;
. = ALIGN(4);
.data :
{
*(.data)
*(.data.*)
. = ALIGN(4);
/* preinit data */
PROVIDE_HIDDEN (__preinit_array_start = .);
KEEP(*(.preinit_array))
PROVIDE_HIDDEN (__preinit_array_end = .);
. = ALIGN(4);
/* init data */
PROVIDE_HIDDEN (__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE_HIDDEN (__init_array_end = .);
. = ALIGN(4);
/* finit data */
PROVIDE_HIDDEN (__fini_array_start = .);
KEEP(*(SORT(.fini_array.*)))
KEEP(*(.fini_array))
PROVIDE_HIDDEN (__fini_array_end = .);
KEEP(*(.jcr*))
. = ALIGN(4);
/* All data end */
*(.gnu.linkonce.d*)
}
__data_end = .;
. = ALIGN(4);
__bss_start = .;
.bss :
{
*(.bss)
*(.bss.*)
*(COMMON)
. = ALIGN(4);
}
. = ALIGN(4);
__bss_end = .;
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_info 0 : { *(.debug_info) }
.debug_line 0 : { *(.debug_line) }
.debug_pubnames 0 : { *(.debug_pubnames) }
.debug_aranges 0 : { *(.debug_aranges) }
_end = .;
}
用J-link吧
我是把图片生成.c文件,这个语句显示图片时lv_img_set_src(img_src, &red_flower);
red_flower结构体const lv_img_t red_flower = {
.header.w = 100, /*Image width in pixel count*/
.header.h = 75, /*Image height in pixel count*/
.header.alpha_byte = 2, /*No alpha byte*/
.header.chroma_keyed = 0, /*No chroma keying*/
.header.format = LV_IMG_FORMAT_INTERNAL_RAW, /*It's a variable compiled into the code*/
.pixel_map = red_flower_pixel_map /*Pointer the array of image pixels.*/
};1). alpha_byte、chroma_keyed 、format 这几个参数都表示什么意思,都应该赐什么样的值?
2). 如果我想显示jpg,bmp,png不同类型的图片,也都是用这一个lv_img_set_src函数吗?
你想把jpg,bmp和png图片生成.c文件,可以通过这个在线工具 https://littlevgl.com/image-to-c-array 进行转换。
跟格式关系不大。
默认Color format参数是True color。
如果你的图片里面有透明图层,则Color format参数那里可以选True color with alpha。
其他的几个参数在lvgl文档里面都有。
Alpha byte Add a 8 bit Alpha value to every pixel
Chroma keyed Make LV_COLOR_TRANSP (lv_conf.h) pixels to transparent
看过视频,效果很好。李工,这个GUI有没有交流群?
大佬 你的解决了吗?我的也是卡在这里...
用官网的LVGL吧,加进去就好了。
这个进展如何?都4月中旬了
同问。
duckduckgo 说:什么时候会有裸机的USB例程?
大神早就弄出来了: https://whycan.cn/t_1810.html
多谢提醒!
达克罗德 说:f1c100s简直神芯,如果有浮点单元那真是满意死了
外设真是太齐全了.
确实,音频ADC用来做测量,精度也很高。
什么时候会有裸机的USB例程?
awtk试试。或者楼上说的LVGL
用Embedded Studio
真会玩
参考了燕十三的RT-Thread帖子,在f1c100s上面跑。https://whycan.cn/t_943.html
我使用的版本是rttbootloader_f1c100s_v1.0.0.bin,应用程序的bin文件大一些,程序就出错了。
请问,1.0.0这个bootloader使用了哪几个分区,起始地址和分区大小分别是多少?
RT-Thread官方有个STM32的通用Bootloader,两个bootloader的设计应该差不多。链接:https://www.rt-thread.org/document/site/application-note/system/rtboot/an0028-rtboot/
三月底可以出来吗?
有没有SDK和开发板?
支持
这个是正常的,楼上已经说了,首件优惠
支持。
晕哥,一分钟能写多少汉字?
找到问题了,屏幕供电那里忘了加电容,还有个问题就是LCD_ONOFF那里接错了。
改正以后屏幕就恢复正常了。
试试这个帖子里面的驱动, https://whycan.cn/t_1457.html
是好的,我已经用过了。
https://whycan.cn/t_1008.html#p4495
https://whycan.cn/t_1008.html#p7036要不要烧别的 Linux 固件试一试?
晕哥,我烧过了。还是没用。
荔枝派只用了 DE 模式吧, 可以把 Hsync, Vsync 悬空或者按手册接线(接地???)试一试.
刚才把悬空或者接地试过了,还是一样。
我看了荔枝nano的原理图,它的HSYNC和VSYNC都接上去了,没有悬空的。
荔枝派只用了 DE 模式吧, 可以把 Hsync, Vsync 悬空或者按手册接线(接地???)试一试.
好的,明天早上试试。可能跟这个有关系,多谢提醒!
查下PCLK、Hsync、Vsync、DE这几根信号线是否正常吧。
用示波器看过了,全部一样。
现象1:
照着荔枝派nano画了块板,电路部分一样的,主控芯片是在供应商那里拿的。
烧的是这个帖子81楼的程序,https://whycan.cn/t_1457_2.html 由@执念执战 分享的代码,@晕哥 修改过的。
发现有闪烁问题。
闪烁视频如下:
用荔枝派nano就能正常显示,连接的是同样的屏幕(800*480)。
还有个问题,现象2:
荔枝派nano烧入81楼的bin文件,连接一块小屏幕(480*272),可正常显示。
新板重复上述操作,显示为白屏。
不知道上述两个现象有没有联系?
在Quotation的帮助下,ADC卡在while循环的原因找到了。
AUDIO_CODEC _CLK_REG的最高位置1才能打开Gating Special Clock,我看成了最低位。
初始化代码如下:
/* GATE2 */
val = read32(F1C100S_CCU_BASE + CCU_BUS_CLK_GATE2);
val |= (0x1);
write32(F1C100S_CCU_BASE + CCU_BUS_CLK_GATE2, val);
sdelay(100);
/* AUDIO_CODEC_CLK_REG */
write32(F1C100S_CCU_BASE + CCU_ADDA_CLK, 0x1 << 31);
sdelay(100);
/* CTRL */
val = read32(F1C100S_CCU_BASE + CCU_PLL_AUDIO_CTRL);
val |= (0x1 << 31);
write32(F1C100S_CCU_BASE + CCU_PLL_AUDIO_CTRL, val);
sdelay(100);
/* reset bus */
write32(F1C100S_CCU_BASE + CCU_BUS_SOFT_RST2, 0x1);
sdelay(100);
掉钱眼里了
怎么说话的?
f1c100s资料这么少,整理出来很花时间和精力的。
Quotation,你好,我用了你在这个帖子里面的音频ADC驱动,
https://whycan.cn/t_1728.html ,用裸机跑的,参考的这个帖子:
烧进去以后,发现程序一直卡在
while (((read32(0x01C23C00 + ADC_FIFOS) >> 23) & 1) == 0)
{
}
这里。
CCU相关的代码我也加进去了,配置CCU_BUS_CLK_GATE2、CCU_ADDA_CLK、
CCU_PLL_AUDIO_CTRL这几个,还是在while循环这里卡着。
研究了几天也没找出问题,请问这种情况一般是哪里出了问题?
支持一下。
我在想,要是把视频播放部分弄出来,可以值多少?
达克罗德 说:jimmy 说:MELIS 吧, 全志自己出的小系统, 基本提供的是 lib 文件, 外设驱动齐全, 你上面列的这些外设都驱动了。
视频解码也有。Melis谁知道怎么跑起来?
用晕哥的方法: https://whycan.cn/t_1823.html
用MDK编译倒是没问题,
打包就懵了理论上直接加到 MDK 工程里面跑就可以了
MELIS那个帖子晕哥还没有搞完吧。
祝站长新年快乐!
这种没有 flash 的单片机怎么调试?
租或者买个仿真器就可以调了。
关注一下,去买一个
别买,买了肯定是吃灰
https://whycan.cn/files/members/3/YA831img.png
那是什么原因, 超过预设加载的大小?
应该不是。我用的是RT-Thread的OTA工具,下面是分区表:
勾选demo-example以后,生成的bin文件560K(这里很奇怪,明明都没有调用lvgl的任何函数,bin文件怎么会变大?)确实是超出了448K。
但是我后面取消勾选demo-example以后生成了200K的bin文件,后面用00填充,做了两个bin,一个400K,一个597K,同样的方法烧进去,都可以用。说明不是大小的问题。
原因应该在LittlevGL2RTT那里。后面找到原因了在这个帖子下面补充一下。
rttbootloader_f1c100s_v1.0.0.bin启动的时候还要等待按键,严重拖慢速度,我发邮件问过了,这个东西不会开源(可能涉及到usb部分,与全志签了NDA?)。用IDA分析了一下,也没找到要修改的位置。后面还是参考Xboot的代码自己写一个bootloader比较好。
多谢楼上各位的回复。
现在已经恢复正常了。在env里面把LittlevGL2RTT的demo example取消勾选即可。
会不会因为 bin 文件超过指定加载的尺寸了?
跟这个应该关系很大。
没有LCD驱动,所以崩溃了,(dev != RT_NULL) assertion failed at function:rt_device_open, line number:244
我只开了一个打印的串口,其他外设全关了。
main函数,只有几条打印信息
int main(int argc, char * *argv)
{
rt_kprintf("periph_get_pll_clk:%d\n", periph_get_pll_clk());
rt_kprintf("cpu_get_clk:%d\n", cpu_get_clk());
rt_kprintf("ahb_get_clk:%d\n", ahb_get_clk());
rt_kprintf("apb_get_clk:%d\n", apb_get_clk());
return 0;
}
参考这个帖子:玩转RT-Thread之荔枝派Nano(全志F1C100S) 新手上路
https://whycan.cn/t_943.html
按照帖子里面说的,使用了rttbootloader_f1c100s_v1.0.0.bin这个bootloader。
现在可以亮屏,也可以串口输出,GPIO,PWM,定时器也都是好的。驱动来自于这个帖子:https://whycan.cn/t_1457.html
但是在env里面使能littlevgl2rtt后,生成一个500多K的bin文件时。烧到flash运行时,就不正常了。只是使能了lvgl,没有包含它们的头文件,没有调用。
串口信息如下:
---------------start------------------
\ | /
- RT - Thread Operating System
/ | \ 3.0.3 build Apr 5 2018
2006 - 2018 Copyright by rt-thread team
[SFUD]Find a Winbond flash chip. Size is 16777216 bytes.
[SFUD]gd25qxx flash device is initialize success.
[Flash](packages/EasyFlash/src/ef_env.c:144) ENV start address is 0x00000000, size is 1024 bytes.
[Flash](packages/EasyFlash/src/ef_env.c:768) Calculate ENV CRC32 number is 0x75A6C872.
[Flash](packages/EasyFlash/src/ef_env.c:780) Verify ENV CRC32 result is OK.
[Flash]EasyFlash V3.0.4 is initialize success.
[Flash]You can get the latest version on https://github.com/armink/EasyFlash .
[Flash](packages/EasyFlash/src/ef_env.c:768) Calculate ENV CRC32 number is 0x6CBDF933.
[Flash]Erased ENV OK.
[Flash]Saved ENV OK.
Hit any key to stop autoboot : 3Hit any key to stop autoboot : 2Hit any key to stop autoboot : 1Hit any key to stop autoboot : 0
run application
begin read...
run addr:0x80000000
\ | /
- RT - Thread Operating System
/ | \ 3.1.1 build Jan 17 2019
2006 - 2018 Copyright by rt-thread team
(dev != RT_NULL) assertion failed at function:rt_device_open, line number:244
--------------end------------------
不包含lvgl时的正常信息如下:
------------start--------------
32 MiB
Trying to boot from sunxi SPI
\ | /
- RT - Thread Operating System
/ | \ 3.0.3 build Apr 5 2018
2006 - 2018 Copyright by rt-thread team
[SFUD]Find a Winbond flash chip. Size is 16777216 bytes.
[SFUD]gd25qxx flash device is initialize success.
[Flash](packages/EasyFlash/src/ef_env.c:144) ENV start address is 0x00000000, size is 1024 bytes.
[Flash](packages/EasyFlash/src/ef_env.c:768) Calculate ENV CRC32 number is 0x75A6C872.
[Flash](packages/EasyFlash/src/ef_env.c:780) Verify ENV CRC32 result is OK.
[Flash]EasyFlash V3.0.4 is initialize success.
[Flash]You can get the latest version on https://github.com/armink/EasyFlash .
[Flash](packages/EasyFlash/src/ef_env.c:768) Calculate ENV CRC32 number is 0x6CBDF933.
[Flash]Erased ENV OK.
[Flash]Saved ENV OK.
Hit any key to stop autoboot : 3Hit any key to stop autoboot : 2Hit any key to stop autoboot : 1Hit any key to stop autoboot : 0
run application
begin read...
run addr:0x80000000
\ | /
- RT - Thread Operating System
/ | \ 3.1.1 build Jan 17 2019
2006 - 2018 Copyright by rt-thread team
periph_get_pll_clk:600000000
cpu_get_clk:408000000
ahb_get_clk:200000000
apb_get_clk:100000000
msh />
------------end--------------
请问,这一般是什么原因呢?
ce-f1c100s-timer.c和cs-f1c100s-timer.c这两个有什么区别?
晕哥 说:https://whycan.cn/files/members/3/QQ20180915160317.png
用这个 IDA 软件分析 melis 库不错。
IDA 真强大!话说melis会开源吗?
晕哥,你干脆把melis库的视频部分也逆向出来吧。
用5楼的程序下载成功了,多谢晕哥!
接上楼,主控是F1C100S,开发板是荔枝Nano
晕哥,我也是九楼的问题。
Win7系统,执行sunxi-fel sid
返回如下:
Warning:no 'soc_sram_info' data for your Soc (id=1663)
SID registers for your SoC (0x1663) are unknown or inaccessible.
想问一下该怎么处理?
zzm24 说:开cache
开了Icache和Dcache是好点了,但是还是感觉卡。我原来用的一个120MHz的MIPS(估计配置下来也就90多M)的片子跑GUI,很流畅。
你看这个帖子: https://whycan.cn/t_1457_2.html 也是裸跑的,并不卡。
能否把视频效果放出来参考参考?
页次: 1