您尚未登录。

#3 Re: 全志 SOC » 玩转RT-Thread之荔枝派Nano(全志F1C100S) 新手上路 » 2019-07-25 18:36:23

zadig安装了没有?

hzpyl 说:
晕哥 说:
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,我对比了,是一样的。

#4 Re: 全志 SOC » 全志melis系统环境搭建、打包、烧录流程 » 2019-07-23 20:03:12

感觉f1c100s,还是跑rtos更合适一些。

九霄云外 说:
hzpyl 说:

请问  九霄云外

用全志F1C100S,是不是用melis比较好?

因为我看RT-Thread的液晶驱动等,好像没有。


这个一看你熟悉什么系统,想省时间快量产melis(也就是UCOS+类linux驱动+minigui的架构)相对成熟些,想省成本或者不想处处受技术支持的限制自己开发用linux, rtt呢我是不太建议用的,必竟很多驱动都没有也没太多人一起完善

#7 Re: 全志 SOC » 玩转RT-Thread之荔枝派Nano(全志F1C100S) 新手上路 » 2019-07-15 14:36:42

hzpyl 说:

rttbootloader下载,没有搞定

烧入rttbootloader,打开串口终端工具。上电,按Enter键进入烧写模式,可以将app.bin烧入。有份详细文档,自己看吧。

#10 全志 SOC » f1c100s在bootloader里如何把app的bin文件拷贝至内存0x80000000处运行? » 2019-06-20 18:31:14

duckduckgo
回复: 2

f1c100s单片机在bootloader程序里如何把APP的bin文件拷贝到内存0x80000000处运行,应该怎么操作?
其中,app的bin文件,在link.ld里已将地址设置为0x80000000。

#11 Re: 全志 SOC » 100s自己写的boot程序fel加载到sram正常运行,烧到flash不正常 » 2019-06-19 11:07:45

问题在这里,导致了spl size的异常。
* (.vector)
jin_boot0_start.o (.text)

vector好像没必要放在这里吧
jin_boot0_start.o放在最前面

#12 Re: 全志 SOC » F1C100S裸奔framebuffer+PWM+GPIO驱动 » 2019-06-14 10:15:42

非常好。
这个是裸机的,请问想在 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 = .;
}

#14 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 咨询一下LittlevGL显示图片里面的结构体参数 » 2019-05-22 13:42:58

beyondabcd 说:

我是把图片生成.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

#16 Re: 全志 SOC » 荔枝上Nano跑LittlevGL2RTT 失败 » 2019-04-18 09:03:49

ermao 说:

大佬 你的解决了吗?我的也是卡在这里...

用官网的LVGL吧,加进去就好了。

#17 Re: 全志 SOC » BITC200(F1c200s/100s)手工焊接简直焊瞎了眼 » 2019-04-15 11:32:54

达克罗德 说:

这个进展如何?都4月中旬了

同问。

#18 Re: 全志 SOC » 网友 @chong 大神提供的f1c100s mainline linux usb 补丁包,支持usb otg(host & device) » 2019-04-13 20:52:59

晕哥 说:
duckduckgo 说:

什么时候会有裸机的USB例程?

大神早就弄出来了: https://whycan.cn/t_1810.html

多谢提醒!

#19 Re: 全志 SOC » f1c100s 支持 TV (cvbs) 输入输出, 但是手册却没有相关寄存器资料, 终于在 A20 手册找到了. » 2019-04-12 19:47:31

daydayup 说:
达克罗德 说:

f1c100s简直神芯,如果有浮点单元那真是满意死了

外设真是太齐全了.

确实,音频ADC用来做测量,精度也很高。

#24 全志 SOC » f1c100s的rttbootloader(rttbootloader_f1c100s_v1.0),有哪几个分区,分区起始地址和大小是多少? » 2019-04-10 19:06:13

duckduckgo
回复: 0

参考了燕十三的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/

#31 Re: 全志 SOC » 照着荔枝派nano画了块新板,屏幕闪烁,求解! » 2019-02-26 15:19:08

找到问题了,屏幕供电那里忘了加电容,还有个问题就是LCD_ONOFF那里接错了。
改正以后屏幕就恢复正常了。

#32 Re: 全志 SOC » 荔枝派Nano Pi PWM背光设置问题 » 2019-02-26 12:59:49

试试这个帖子里面的驱动, https://whycan.cn/t_1457.html
是好的,我已经用过了。

#34 Re: 全志 SOC » 照着荔枝派nano画了块新板,屏幕闪烁,求解! » 2019-02-26 09:24:45

smartcar 说:

荔枝派只用了 DE 模式吧, 可以把 Hsync, Vsync 悬空或者按手册接线(接地???)试一试.

刚才把悬空或者接地试过了,还是一样。
我看了荔枝nano的原理图,它的HSYNC和VSYNC都接上去了,没有悬空的。

#35 Re: 全志 SOC » 照着荔枝派nano画了块新板,屏幕闪烁,求解! » 2019-02-25 19:32:39

smartcar 说:

荔枝派只用了 DE 模式吧, 可以把 Hsync, Vsync 悬空或者按手册接线(接地???)试一试.

好的,明天早上试试。可能跟这个有关系,多谢提醒!

#36 Re: 全志 SOC » 照着荔枝派nano画了块新板,屏幕闪烁,求解! » 2019-02-25 19:02:24

ZSB 说:

查下PCLK、Hsync、Vsync、DE这几根信号线是否正常吧。

用示波器看过了,全部一样。

#37 全志 SOC » 照着荔枝派nano画了块新板,屏幕闪烁,求解! » 2019-02-25 18:55:43

duckduckgo
回复: 9

现象1:
照着荔枝派nano画了块板,电路部分一样的,主控芯片是在供应商那里拿的。
烧的是这个帖子81楼的程序,https://whycan.cn/t_1457_2.html  由@执念执战 分享的代码,@晕哥 修改过的。
发现有闪烁问题。

闪烁视频如下:

用荔枝派nano就能正常显示,连接的是同样的屏幕(800*480)。

还有个问题,现象2:
荔枝派nano烧入81楼的bin文件,连接一块小屏幕(480*272),可正常显示。
新板重复上述操作,显示为白屏。

不知道上述两个现象有没有联系?

#38 Re: 全志 SOC » F1C100s ADC使用一坑 » 2019-02-22 14:34:03

在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);

#39 Re: 全志 SOC » F1C100S_LINUX_4.15_SDK自己整理的,支持USB » 2019-02-20 18:10:58

tango_zhu 说:

掉钱眼里了

怎么说话的?
f1c100s资料这么少,整理出来很花时间和精力的。

#40 Re: 全志 SOC » F1C100s ADC使用一坑 » 2019-02-20 16:12:14

Quotation,你好,我用了你在这个帖子里面的音频ADC驱动,

https://whycan.cn/t_1728.html ,用裸机跑的,参考的这个帖子:

https://whycan.cn/t_1457.html

烧进去以后,发现程序一直卡在
while (((read32(0x01C23C00 + ADC_FIFOS) >> 23) & 1) == 0)
{
}
这里。

CCU相关的代码我也加进去了,配置CCU_BUS_CLK_GATE2、CCU_ADDA_CLK、

CCU_PLL_AUDIO_CTRL这几个,还是在while循环这里卡着。       
研究了几天也没找出问题,请问这种情况一般是哪里出了问题?

#41 Re: 全志 SOC » F1C100S_LINUX_4.15_SDK自己整理的,支持USB » 2019-02-18 13:58:27

支持一下。
我在想,要是把视频播放部分弄出来,可以值多少?

#42 Re: 全志 SOC » F1C100S LINXU ,BSP,RTT... 哪个版本都功能比较齐全? » 2019-02-15 12:25:24

jimmy 说:
达克罗德 说:
jimmy 说:

MELIS 吧, 全志自己出的小系统, 基本提供的是 lib 文件, 外设驱动齐全, 你上面列的这些外设都驱动了。
视频解码也有。

Melis谁知道怎么跑起来?

用晕哥的方法: https://whycan.cn/t_1823.html

用MDK编译倒是没问题,
打包就懵了

理论上直接加到 MDK 工程里面跑就可以了

MELIS那个帖子晕哥还没有搞完吧。

#44 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 比电容还便宜的单片机 » 2019-01-25 09:43:40

lilo 说:

这种没有 flash 的单片机怎么调试?

租或者买个仿真器就可以调了。

#46 Re: 全志 SOC » 荔枝上Nano跑LittlevGL2RTT 失败 » 2019-01-18 18:04:20

晕哥 说:

https://whycan.cn/files/members/3/YA831img.png

那是什么原因, 超过预设加载的大小?

应该不是。我用的是RT-Thread的OTA工具,下面是分区表:
FluxBB bbcode 测试
勾选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比较好。

#47 Re: 全志 SOC » 荔枝上Nano跑LittlevGL2RTT 失败 » 2019-01-18 17:17:48

多谢楼上各位的回复。
现在已经恢复正常了。在env里面把LittlevGL2RTT的demo example取消勾选即可。
FluxBB bbcode 测试

#48 Re: 全志 SOC » 荔枝上Nano跑LittlevGL2RTT 失败 » 2019-01-18 17:14:51

smartcar 说:

会不会因为 bin 文件超过指定加载的尺寸了?

跟这个应该关系很大。

#49 Re: 全志 SOC » 荔枝上Nano跑LittlevGL2RTT 失败 » 2019-01-18 08:51:10

pineshen 说:

没有LCD驱动,所以崩溃了,(dev != RT_NULL) assertion failed at function:rt_device_open, line number:244

我只开了一个打印的串口,其他外设全关了。

#50 Re: 全志 SOC » 荔枝上Nano跑LittlevGL2RTT 失败 » 2019-01-17 20:24:37

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;
}

#51 全志 SOC » 荔枝上Nano跑LittlevGL2RTT 失败 » 2019-01-17 20:17:15

duckduckgo
回复: 14

参考这个帖子:玩转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--------------



请问,这一般是什么原因呢?

#52 Re: 全志 SOC » F1C100S裸奔framebuffer+PWM+GPIO驱动 » 2019-01-17 10:31:15

ce-f1c100s-timer.c和cs-f1c100s-timer.c这两个有什么区别?

#53 Re: 全志 SOC » f1c100s 触摸屏(TP)驱动程序部分代码 (裸奔) 已验证,可以进【按压】和【抬起】中断,可以读按压坐标. » 2019-01-02 11:24:21

达克罗德 说:
晕哥 说:

https://whycan.cn/files/members/3/QQ20180915160317.png

用这个 IDA 软件分析 melis 库不错。

IDA 真强大!话说melis会开源吗?

晕哥,你干脆把melis库的视频部分也逆向出来吧。

#56 Re: 全志 SOC » 编译、安装Windows版本sunxi-fel步骤 (32M spi flash补丁,支持W25Q256/MX25L256) » 2018-12-19 10:29:15

晕哥,我也是九楼的问题。
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.

想问一下该怎么处理?

#57 Re: 全志 SOC » lvgl移植到裸跑的f1c100s上 » 2018-12-18 11:24:06

小菜 说:
zzm24 说:

开cache

开了Icache和Dcache是好点了,但是还是感觉卡。我原来用的一个120MHz的MIPS(估计配置下来也就90多M)的片子跑GUI,很流畅。

你看这个帖子: https://whycan.cn/t_1457_2.html  也是裸跑的,并不卡。
能否把视频效果放出来参考参考?

页脚

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

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