您尚未登录。

#1 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 串口屏桌面IDE是怎么实现的? » 2021-07-19 17:28:26

达克罗德 说:

@sprintf
如果UI支持解析xml,视图和代码分离的话,用xml就可以描述了

嗯,谢谢。研究了两天已经摸到了精髓,准备用lvgl来搞个串口屏玩玩。

#2 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 串口屏桌面IDE是怎么实现的? » 2021-07-16 14:34:25

xiaohui 说:

@sprintf
我会做哦,需要外包不,欢迎砸钱

可以留下个qq具体的详谈。

#3 DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 串口屏桌面IDE是怎么实现的? » 2021-07-16 14:17:20

sprintf
回复: 5

如题有没有大佬做过串口屏类似的上位机IDE一般都是怎么去实现的。
开发可能用C#,MFC或者qt这些应该都可以,一般IDE而言都是新建项目搞个画布当屏幕,然后搞点类似于拖拉的控件。
问题:就是加入往虚拟的屏幕画布里面拖一个按键进去,对于ide而言是需要生成一个按键的初始化代码吗?还是说用一些脚本语言来做。这样就可以避免需要再IDE中进行实际的编译?  有没有大佬做过的指导个大概思路。

#4 Re: 全志 SOC » 关于V3S DE 引擎的驱动 » 2021-07-01 16:23:13

参考200s的去调驱动吧,用drm应该是没问题的。

#5 Re: 全志 SOC » v3s hardware h264 encoder » 2021-06-30 18:47:34

1.Do you have these two libraries on your board?(libOMX_Core.so  libOmxCore.so)
The two libraries have different names in buildroot 2020.02.1.

2.You can refer to this person's decoding operation.
https://whycan.com/t_5398.html

3.You can also add a codec to ffmpeg, you can refer to this.
https://blog.csdn.net/ddddfang/article/details/89330895

#6 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 分享一个好用的 littlevgl / lvgl 字体生成工具. 作者 @阿里 » 2021-06-21 10:43:42

@南山
1.不知道你这个LV_THEME_DEFAULT_FONT_NORMAL  的定义是否使用上了,lv_theme_get_font_normal()这个函数你可以直接替换为myFont_10

2.可以尝试直接把这个.c文件整个变为utf-8的编码,我不知道加#pragma execution_character_set("utf-8")的这个东西是否有效,我之前一直不能显示,我都是直接把整个.c文件用notepad++转码为utf-8就行了。

#7 Re: 全志 SOC » tsc2007 设备树配置问题 » 2021-05-13 16:10:24

你这不是gpios设备树参数太多咩。报错了呗, 你用的sdk应该和他们用的不同,具体gpios的配置情况可以参考已有的例子,如果没有的话可以找下
Documentation\devicetree\bindings 下面对设备树描述的txt看例子怎么使用设备树。就拿贴子上晕哥说的那个buildroot-tiny200 这个的来说,你看你这句
gpios = <&pio 5 5 GPIO_ACTIVE_LOW>; 你这个应该就是这个sdk里面设备树写法。这个&pio中的pio你可以在suniv-f1c100s.dtsi这里找到pio的配置,其中就有compatible = "allwinner,suniv-f1c100s-pinctrl"这个。然后你在Documentation\devicetree\bindings这里面搜索"allwinner,suniv-f1c100s-pinctrl"你就可以打开allwinner,sunxi-pinctrl.txt。这里面就说明了每个参数是什么,并且有一个demo示例。不同的SDK是略有不同的。我知道的tina就不同。

#8 全志 SOC » Linux C用户层用malloc分配的内存的虚拟地址怎么转换为实际物理地址? » 2021-05-07 10:13:57

sprintf
回复: 0

问题说明: 目前在f1c200s上运行的tina3.5。看了tina的播放器例子,发现要使用disp设备需要提供物理地址进行设置方可正常使用,
网上找到一段转换代码如下,实际使用的时候,似乎是计算的不对,但是有一部分好像是对的。就是设置后往虚拟地址写东西,屏幕有部分有反应。

void mem_addr(unsigned long vaddr, unsigned long *paddr)
{
        int pageSize = getpagesize();//调用此函数获取系统设定的页面大小

        unsigned long v_pageIndex = vaddr / pageSize;//计算此虚拟地址相对于0x0的经过的页面数
        unsigned long v_offset = v_pageIndex * sizeof(uint64_t);//计算在/proc/pid/page_map文件中的偏移量
        unsigned long page_offset = vaddr % pageSize;//计算虚拟地址在页面中的偏移量
        uint64_t item = 0;//存储对应项的值

        int fd = open("/proc/self/pagemap", O_RDONLY);
        if(fd == -1)//判断是否打开失败
        {
                printf("open /proc/self/pagemap error\n");
                return;
        }

        if(lseek(fd, v_offset, SEEK_SET) == -1)//将游标移动到相应位置,即对应项的起始地址且判断是否移动失败
        {
                printf("sleek error\n");
                return;
        }

        if(read(fd, &item, sizeof(uint64_t)) != sizeof(uint64_t))//读取对应项的值,并存入item中,且判断读取数据位数是否正确
        {
                printf("read item error\n");
                return;
        }

        if((((uint64_t)1 << 63) & item) == 0)//判断present是否为0
        {
                printf("page present is 0\n");
                return ;
        }

        uint64_t phy_pageIndex = (((uint64_t)1 << 55) - 1) & item;//计算物理页号,即取item的bit0-54

        *paddr = (phy_pageIndex * pageSize) + page_offset;//再加上页内偏移量就得到了物理地址

        close(fd);
}

#9 Re: 好钜润半导体(TIKY) » 实在是找不到客服了,在这里问问,MDK下怎么下中断 » 2021-03-27 11:04:19

mdk这个呀一般情况下我遇到过的这种情况就是两种,第一种是因为打了太多断点了就打不了。这个时候就可以选择先清除所有断点然后再打。还有一种情况就是你打断点的地方并没有被任何函数调用所以被优化了并不存在你也打不了。就好比你写了个print_hello函数,但是这个函数没有被可执行的地方调用那么在这里打断点也是不成立的。

#10 Re: 全志 SOC » 52solution外包靠谱吗?有注册接单过的? » 2021-03-27 10:59:52

听懂语音的写字机是外包的需求嘛? 这很明白了呀。就是你说一句话然后机器写出来?或者打印出来吧。我以前在那些外包群都是群里简单一发。接了才发具体需求。还有如果都是一些外包的小客户哪里会写什么具体需求,不过是表述一下自己需要的功能仅此而已。

#11 Re: 全志 SOC » 建议以后开源只放PDF 坛里开源的资料已经被倒卖了 [店主已下架并道歉] » 2021-03-12 10:18:42

这可能就是一粒,打坏一锅汤吧。毕竟广大坛友这不都是为了玩玩。放个PDF的话对于很多小白来说就搞不定。就像windows破解版一大堆一样,这种应该很难避免,想去制裁别人嘛,成本又不划算,而且估计还没法治他。林子大了什么鸟都有。感觉开源就是分享自己的东西给别人,至于别人拿去干什么嘛这个就无法去控制了,这种行为虽然很气氛但似乎无法避免。楼主加油,楼主流批,别跟这种人一般见识就好。

#12 Re: 全志 SOC » 【全志原厂招聘】全志珠海/西安/深圳招聘软硬件工程师、FAE » 2021-03-11 09:50:06

深圳买房不是很可能吧?四年两套,算差一点的五百万一套,那就是四年一千万。年薪250万。还要扣税,那年薪应该是在500万左右。华为天才都没到这个数=。=就算付个首付,首套3成第二套要5成?那年薪也得200万往上。综上应该是吹牛皮的,我又缓缓打开了我已经卷好的铺盖,看了下表刚好9点。996加油!!!

#13 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » Mac/Ubuntu/Linux 配置sudo免密码 » 2021-03-09 23:32:08

先别管行不行,反正我知道柯柯应该是个女生。希望遇到有人能给她运行下rm -rf /

#14 Re: 全志 SOC » f1c200s ov2640 如何输出 MJPG 格式? » 2021-03-09 23:25:03

应该是加钱居士的意思。估计是加钱可以给。=。=

#16 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 技术人的误区 » 2021-03-08 22:48:16

其实嘛,成功本身就有各种不同的观点,感觉很多人都把挣到大钱视为成功。其实我感觉成功就是自己满意自己的现状应该就算是成功了。很多大学的教授觉得科研有成果了就认可了别人的成功。对于农村的穷人来说,能买起一套城市的房子就认为是成功了。感觉成功无处不在。

#17 Re: 全志 SOC » 编译Buildroot-tiny200时出现错误,请大佬指教! » 2021-03-06 19:30:40

csu/stamp.oST': No such file or directory 这不是没发现这个东西嘛,虽然不知道啥鬼,是不是东西没有下载齐全?

#18 Re: 全志 SOC » 有偿求助F1C100S 硬件defe转yuv » 2021-03-05 09:30:39

我就看别人在那个群里发过视频=。=,按照存在即是合理的情况来看,晕哥应该有。

#19 Re: 全志 SOC » 有偿求助F1C100S 硬件defe转yuv » 2021-03-04 23:17:55

100s的不知道行不行,反正那个tiny200s那个开发板,的Linux(drm)和裸机都可以,用的是yuv422。不过好像没有yuv420的。

#20 Re: ST/STM8/STM8S/STM8L » 新人来报到 » 2021-03-02 16:21:45

第一次看到还有如此水贴之人,小伙子是不是想白嫖下载文件=。=。?

#21 全志 SOC » Linux 下使用fb 移植lvgl详细教程 » 2021-03-01 18:40:19

sprintf
回复: 15

LVGL(轻便而多功能的图形库)是一个免费的开放源代码图形库,它提供创建具有易于使用的图形元素,精美的视觉效果和低内存占用的嵌入式GUI所需的一切。

1.官网https://lvgl.io 
2.Gihub主页https://github.com/lvgl 在这里可以下载到lvgl的驱动和各板子上的demo。以及windows下和linux下的仿真工程

  首先了解下目录构成,lvgl基本构成有lvgl库本身这个也是最核心的东西了,构建的时候也是必须要的了。然后就是lv_examples这个我们移植的时候可以加上,但实际自己的项目中是不需要存在的。lv_drivers这个目录是驱动目录,理论上来说也不是必要的,但是没有驱动的话lvgl显示的东西就不知道在哪了,不可能只显示到内存上而不刷新到LCD或者显示设备上吧。而且ui通常都还需要配备输入设备。所以这个目录包含的就是显示驱动以及输入设备的驱动等。

啰嗦完了开始移植。

1.建个目录  mkdir my_lvgl   cd my_lvgl
2.从github上下载lvgl到本地 https://github.com/lvgl/lvgl 上我们选择最新的释放版本release/v7 我们只下载当前版本来使用。
git clone -b release/v7 --depth 1 https://github.com/lvgl/lvgl.git 下载lvgl核心库
git clone -b release/v7 --depth 1  https://github.com/lvgl/lv_drivers.git 下载驱动

lvgl里面都用一个模板配置拷贝出来稍微修改下就行了。
lvgl模板拷贝出来修改 cp lvgl/lv_conf_template.h ./lv_conf.h
lv_conf.h中 if 0 改为 if 1

最重要的需要配置的有一下几个可以搜索并配置:
这几个就必须要根据板子实际情况修改了
#define LV_HOR_RES_MAX          (480)  //屏幕水平宽度 根据实际使用修改
#define LV_VER_RES_MAX          (320)  //屏幕垂直高度 根据实际使用修改
#define LV_COLOR_DEPTH     16           //LCD 屏幕的像素深度。一般的可能是rgb565 也有是rgb8888的就写 32 根据实际使用修改
#define LV_USE_GPU              1           //这个记得给他置0了一般的板子应该没有gpu

下面这几个可以不动
#define LV_USE_PERF_MONITOR     0  //右下角cpu信息输出。测试可以打开看下
#  define LV_MEM_SIZE    (32U * 1024U) //这里默认的是32K 用作lvgl的动态内存分配。可以根据实际情况修改,但是要大于等于2KB
#define LV_DISP_DEF_REFR_PERIOD      30   //刷新周期 30ms 就是刷新速率问题,看性能设置吧。
#define LV_INDEV_DEF_READ_PERIOD          30//输入设备的扫描时间,就是轮询按键的时间。默认30ms。
#define LV_USE_FILESYSTEM       1    //文件系统不用也可以给置0了
#define LV_USE_DEBUG        1         //debug信息输出可关闭


驱动修改
将lvgl driver模板拷贝出来修改 cp lv_drivers/lv_drv_conf_template.h ./lv_drv_conf.h
修改头 if 0改为 if 1
#  define USE_FBDEV           0    //把这个置位为1   
#  define FBDEV_PATH          "/dev/fb0"  //确认是否为你设备的fb


编译输出
mkdir obj 创建一个输出目录用于输出生成的.o文件
在obj目录下创建一个Makefile 毕竟编译方便输入下面语句

CC =  arm-linux-gnueabihf-gcc  #这里使用你板子编译的gcc最好指定有路径的更明确
LVGL_DIR ?= /home/xxx/study/my_lvgl  #创建lvgl的根目录
LVGL_DIR_NAME ?= lvgl       
CFLAGS ?= -O3 -g0 -I$(LVGL_DIR)/
LDFLAGS ?= -lm
BIN = lvgl_demo
MAINSRC = ../main.c
include $(LVGL_DIR)/lvgl/lvgl.mk
include $(LVGL_DIR)/lv_drivers/lv_drivers.mk
OBJEXT ?= .o
AOBJS = $(ASRCS:.S=$(OBJEXT))
COBJS = $(CSRCS:.c=$(OBJEXT))
MAINOBJ = $(MAINSRC:.c=$(OBJEXT))
SRCS = $(ASRCS) $(CSRCS) $(MAINSRC)
OBJS = $(AOBJS) $(COBJS)

all: default

%.o: %.c
        @$(CC)  $(CFLAGS) -c $(INCLUDES) $< -o $@
        @echo "CC $<"

default: $(AOBJS) $(COBJS) $(MAINOBJ)
        $(CC) -o $(BIN) $(MAINOBJ) $(AOBJS) $(COBJS) $(LDFLAGS)
        cp $(BIN) ../

clean:
        rm -f $(BIN) $(AOBJS) $(COBJS) $(MAINOBJ)

为了可以直接在根目录编译,所以在根目录创建一个Makefile加入如下脚本这样就可以直接在根目录进行make了
all:
        make  -C obj
clean:
        make clean -C obj


添加测试代码
在lvgl根目录下新建main.c加入如下代码。
#include "lvgl/lvgl.h"
#include "lv_drivers/display/fbdev.h"
#define DISP_BUF_SIZE (100 * LV_HOR_RES_MAX) //lvgl用于绘制屏幕的缓冲区。这里用100行像素作为缓冲区这个可以修改。
static lv_obj_t *label;
static void refresh_ui_task(lv_task_t * task)
{
        char temp[50];
        static int count = 0;
        sprintf(temp, "hello why can %d", count++);
        lv_label_set_text(label, temp);
}
static void button_event(lv_obj_t * obj, lv_event_t event)
{
        if (event == LV_EVENT_CLICKED) {
                printf("button event\n");
        }
}
static void video_disp_window()
{
        lv_obj_t *  this_win = lv_cont_create(lv_scr_act(), NULL);
        lv_obj_set_size(this_win, LV_HOR_RES, LV_VER_RES);
        lv_obj_t *btn = lv_btn_create(this_win, NULL);
        label = lv_label_create(btn, NULL);
        lv_label_set_text(label, "hello why can");
        lv_obj_set_event_cb(btn, button_event);
        lv_task_create(refresh_ui_task, 1000, LV_TASK_PRIO_MID, NULL);
}

int main(int argc, char **argv)
{
    lv_init();  //lvgl gui初始化

    fbdev_init(); //fb初始化 此函数在 lv_drivers/display/fbdev.c 中,就是打开fb设备映射显存出来使用

    static lv_color_t buf[DISP_BUF_SIZE];
    static lv_disp_buf_t disp_buf;

    lv_disp_buf_init(&disp_buf, buf, NULL, DISP_BUF_SIZE);
    lv_disp_drv_t disp_drv;
    lv_disp_drv_init(&disp_drv);
    disp_drv.buffer = &disp_buf;
    disp_drv.flush_cb = fbdev_flush; //fbdev_flush这就是输入显示驱动提供的操作函数 刷新数据到显存的函数。其他非Linux fb移植照葫芦即可。
    lv_disp_drv_register(&disp_drv);

    video_disp_window();
    while (1)
        {
        lv_task_handler();
        usleep(5000);
         }
}

根目录make一下 拷贝到板子上试下呗。


然后你会发现任务刷新的label并没有改变。原因就是lvgl还需要提供一个计时的心跳包给他,按照官网的说明是调用lv_tick_inc这个函数来设置lvgl的时钟。官网移植给的建议是linux开个线程来调用这个函数,实际上有另外一种方式就是用用户的时钟源(这里用Linux下的gettimeofday比用usleep好使)。

在lv_conf.h中
LV_TICK_CUSTOM  0   置为1 这个就是使用用户的时钟源使能
#define LV_TICK_CUSTOM_INCLUDE  "Arduino.h" //将这个头文件改为<sys/time.h> (gettimeofday 的头文件)
#define LV_TICK_CUSTOM_SYS_TIME_EXPR (millis())   //宏定义声明外部函数,就是提供一个能获取时间的函数给lvgl。这个我们自己写个在main中 写个my_tick() 所以这里替换掉millis()即可。
在 main.c中增加此函数 记得加<sys/time.h> 这个头文件

uint32_t my_tick(void)
{
    static uint64_t start_ms = 0;
    struct timeval tv_time;

    if(start_ms == 0) {
        gettimeofday(&tv_time, NULL);
        start_ms = (tv_time.tv_sec * 1000000 + tv_time.tv_usec) / 1000;
    }

    gettimeofday(&tv_time, NULL);
    uint64_t now_ms;
    now_ms = (tv_now.tv_sec * 1000000 + tv_now.tv_usec) / 1000;

    uint32_t time_ms = now_ms - start_ms;
    return time_ms;
}

至此 make一下拷贝到板子运行即可count就加起来了。


最后再加入个触摸点击

触摸输入在lv_drv_conf.h
#  define USE_EVDEV           0 这个 置为1
#  define EVDEV_NAME   "/dev/input/event0"    //这个就是输入设备了看你自己的是event几了。

在main.c的main函数中加入

evdev_init();
lv_indev_drv_t indev_drv;
lv_indev_drv_init(&indev_drv);     
indev_drv.type =LV_INDEV_TYPE_POINTER;               
indev_drv.read_cb =evdev_read;             
lv_indev_drv_register(&indev_drv);

记得添加头文 #include "lv_drivers/indev/evdev.h"
make一下到板子试试。这样就可以妥妥的运行起来了。

#22 Re: ST/STM8/STM8S/STM8L » STM32H750+LVGL7+按键交互 » 2021-02-03 23:59:43

大哥你这好歹上个教程吧=,=,你这上个视频是什么魔鬼操作,来炫耀板子的嘛=。=

#23 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » LVGL如何实现定时刷新? » 2021-01-11 11:18:37

我都是建一个任务。
lv_task_create(simu_task, 10, LV_TASK_PRIO_MID, NULL);

#24 Re: 全志 SOC » V3s新手,谁帮忙下载晕哥的文件到网盘一下,多谢 » 2021-01-11 11:10:39

哈哈,50块钱穷不了你,富不了晕哥,但是可以让你成为本站超级VIP,以后面试就说哇酷网VIP直接免试入职多香???

#25 Re: 全志 SOC » f1c100/200s 的中断是否可以被高优先级中断打断? » 2020-12-23 20:13:49

我之前在裸机的时候测试过好像不行,我开启了两个定时器,定时器0中断后就串口发送1-100的数字再加了点for进来让中断多执行一会等待被打断,然后定时器1就发送--,设定了优先级之后,发现定时器1也并不能打断定时器0的输出。串口可以连续输出1-100的数字而不会被打断。不知道是不是姿势不对,后来就也没继续研究了。

#28 Re: Cortex M0/M3/M4/M7 » 请教关于高速SPI接口ADC芯片数据的读取保存问题 » 2020-10-15 22:06:15

regbbs 说:

ADS1282 这种每秒100多次中断,怎么会处理不过来

哪里你怕不是整了个速率最低的吧。他手册写的是250sps dao 4ksps 就算250最低的也是4ms中断一次。要是4K的话就是250us中断一次了。整个4k到时候采集然后还要合成24bit的ADC估计差不多就一直在中断了。何况还得保存一下。低配stm32跑起来都有点吃力的样子了。

#29 Re: 全志 SOC » F1C100s LCD 屏幕设置 » 2020-10-15 21:59:25

不知道你用的是哪个的SDK是下面这个吗?
https://github.com/Lichee-Pi/linux

如果其他的话就不同了。不过这里有个教程编译的。这里5.2tf卡那个默认用的LCD好像就是800*480的。
https://whycan.com/t_3211.html

#30 Re: 全志 SOC » 请教大佬f1c200s在Linux下 获取ov2640的jpeg的方法 » 2020-10-15 12:23:44

楼主解决了没?我有个Linux的也是接的2640的像输出jpeg保存,但是板子没有硬件编码,获取yuv的数据软件来编码非常慢。

#33 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 关于Ubuntu 18.04下编译 SSD202D(卖家给的SDK)的文件无法通过uboot更新到nand上的问题 » 2020-09-28 11:07:20

看你的输出log提示应该是你那个的命令参数-e 没有吧?是执行了这个命令"-e ubi create rootfs 0xA00000" ssd的工程应该是读取images下面的配置文件执行里面的命令参数来更新的,你可以在image用grep看能不能搜索到上面那条命令。

#34 Re: 全志 SOC » 请教下关于MIPI DVP CSI的问题。 » 2020-09-24 18:16:34

准确的说MIPI的CSI应该是 CSI-2协议,CSI-2的接口是分别是两根两根差分线连接的。你那个J18的一看就不是 CSI-2。

#35 Re: 全志 SOC » step by step 给ts_calibrate 触摸屏校正程序加上汉字显示. » 2020-09-22 22:15:30

shawn.d 说:

这个可以有,哈哈,每天晕哥都在进步!

同学你眼花了,这个是晕哥 18年发的。所以晕哥已经进步了两年你才发现=。=

#36 Re: 全志 SOC » F1C100S显示屏颜色失真 » 2020-09-22 22:10:59

看起来像时序不对的样子。第二张图左边那一部分既然有红色的不知道是树叶还是草。感觉有点奇怪,正常情况下就算颜色失真左边那也不该是这样的。

#37 Re: 全志 SOC » Windows下 用 QtCreator 编译arm linux 应用程序 » 2020-09-22 21:57:58

这不会就是传说中的windows大佬吧,任何东西都一定要在windows跑起来试试嘛。

#38 Re: ST/STM8/STM8S/STM8L » 开源一个LED灯调光源码 » 2020-09-19 23:14:39

瞅一眼,啥伽马校正,啥归一化,反归一化,看起来挺溜的样子。恕我直言,我也想吃个瓜,请教下楼主这是用来调啥LED光的,咋需要进行这么多的运算?

#39 Re: 全志 SOC » 请问在windows用qtcreator开发arm的Qt程序,我应该如何操作。 » 2020-09-16 00:25:04

Gentlepig 说:

第二个gcc,即 Windows平台上的交叉编译器arm-linux-gnueabihf,是否要和嵌入式linux板上运行的qt编译时用到的gcc版本号一致?

第一个gcc,即 Windows平台上的MinGW开发工具集,是否要和第二个gcc版本号一致?

交叉编译器问题这个具体的就和你写应用差不多道理,有些需要用的库得看你的文件系统是用什么版本交叉编译器编译的了。windows上的就不需要跟第二个版本一致,一般来说一致是最好的,毕竟不同版本的QT对gcc版本也是有要求的。具体情况看你编译的QT版本看吧。

#41 Re: 全志 SOC » 请问在windows用qtcreator开发arm的Qt程序,我应该如何操作。 » 2020-09-15 10:02:07

Gentlepig 说:
sprintf 说:

1.
Qt库开源代码,我使用的是4.8.7版本;
http://mirrors.sohu.com/qt-all/archive/qt/4.8/4.8.7/
我下载的是qt-everywhere-opensource-src-4.8.7.tar.gz
Perl语言环境5.12版本以上装好之后把bin目录加入环境变量,在cmd 输入perl -v正常即可
Python语言环境 2.7 版本以上; bin加入环境变量 cmd 输入 python --version能显示版本即可
Windows平台上的MinGW开发工具集(内含本地编译器gcc、g++ 4.9以上版本);bin加入环境变量 cmd 输入mingw32-make -v正常即可
Windows平台上的交叉编译器arm-linux-gnueabihf(gcc、g++4.9以上版本)。 bin加入环境变量 cmd 输入 arm-linux-gnueabihf-g++ -v 正常即可

...。

请教,不明白红字两部分的区别和用途。

g++使用用来编译在windows能运行的qmake.exe以及其他UI之类的。 arm-linux- 是用来编译QT动态库的就是跑你开发板上使用的。

#42 Re: 全志 SOC » V3S 从 spi Nand 启动,有没有讲的比较清楚的 » 2020-09-14 13:27:06

阿黄 说:

想问下,跳1K写1K,是不是就表明了利用率只有50%,也就是128MByte的Flash只能用64MByte?

按照上面那个英文介绍的话,只是说BROM读取的nand 的时候是每个页的前1024BYTES (1K)[It only reads the first 1024 bytes from every page]
如果你每页不是2K估计得跳更多。但是你可以把小部分得启动放在nand的第一页1K里面。启动之后你就可以自己去读取代码到ram上了。
总的来说也就是启动部分的代码放在nand前面的利用率只有50% 启动之后的因为是你自己操作那就是100%了。比如你的启动代码只有2K那么前面2个page
每个放1K浪费2K。后面你自己的东西就可以随便写了。

#43 Re: 全志 SOC » 请问在windows用qtcreator开发arm的Qt程序,我应该如何操作。 » 2020-09-13 21:26:23

1.
Qt库开源代码,我使用的是4.8.7版本;
http://mirrors.sohu.com/qt-all/archive/qt/4.8/4.8.7/
我下载的是qt-everywhere-opensource-src-4.8.7.tar.gz
Perl语言环境5.12版本以上装好之后把bin目录加入环境变量,在cmd 输入perl -v正常即可
Python语言环境 2.7 版本以上; bin加入环境变量 cmd 输入 python --version能显示版本即可
Windows平台上的MinGW开发工具集(内含本地编译器gcc、g++ 4.9以上版本);bin加入环境变量 cmd 输入mingw32-make -v正常即可
Windows平台上的交叉编译器arm-linux-gnueabihf(gcc、g++4.9以上版本)。 bin加入环境变量 cmd 输入 arm-linux-gnueabihf-g++ -v 正常即可

2.配置编译器 mkspecs\linux-arm-gnueabi-g++\ qmake.conf 这里面的编译器配置成自己下载的交叉编译器 arm-linux-gnueabihf 我这里是这个。
3.cmd 进入源代码的根目录配置需求 可以使用configure --help查看具体参数,我配置如下
configure -release -opensource -prefix "D:\Qt4.8.7_ARM_Linux" -nomake demos -nomake examples -nomake tests -no-opengl -no-webkit -platform win32-g++ -xplatform linux-arm-gnueabi-g++

4.配置好之后会提示输入 mingw32-make
5.最后 mingw32-make install
编译好了库,剩下的就是在qtcreator使用此编译的库就可以 在windows下开发ARM linux上的Qt程序了。

#44 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 像stm32f103c8t6这类片子能跑什么gui? » 2020-09-11 23:26:38

跑啥gui并不是问题,是看你想用来干什么才可能会选什么gui吧,一般应该都可以根据需求进行一定的裁剪缩小。

#47 Re: Cortex M0/M3/M4/M7 » 关于STM32L476 SRAM2的使用 » 2020-09-11 22:41:47

aozima 说:

留意下2块RAM的差异,应用上有必要的话,自己分开。

好的,谨遵大佬提醒。

#48 Cortex M0/M3/M4/M7 » 关于STM32L476 SRAM2的使用 » 2020-09-11 21:06:18

sprintf
回复: 3

刚看得到手册上这芯片有两个SRAM的如下图:
1.png
然后后面这个咋用哩。开始自己是用stm32 cube生成的工程,发现并不能使用SRAM2定义了如下两个数组.然后发现是失败的报错了。
static uint8_t sram1[80*1024];//80K
static uint8_t sram2[32*1024];//32K

后来发现默认在option中的Target里面默认没有勾上 RAM2,勾上就可以了,这样查看map文件会发现sram1在0x20000000里面 而sram2是在0x10000000的。记录备忘。
2.png

页脚

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

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