WhyCan Forum(哇酷开发者社区)

我们能随心所欲"有问题百度(谷歌)一下", 这得感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn

您尚未登录。

#1 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 多少科技从业者觉得黄祸猛于虎? » 2020-07-26 12:50:30

不管黄祸还是洋祸,都需要科学技术;科学技术是工具,谁都需要。
所以你说“我们怎么就没有洋祸说,还努力学习科学技术!”毫无逻辑。

#2 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-07-03 19:40:08

spl-separated分支,就是文档中的"f1c100s-uboot"。

逗倪豌儿 说:

文档说的另外两个工程是不是码云上没有,没有开源?

#3 Re: 全志 V3S/F1C100s/X3 » f1c200s(tiny200) linux+emwin稳定运行 » 2020-06-28 08:40:24

流氓兔 说:

骚话不想多说了,楼主还是传授我祖传破解小技巧吧。

不需要破解的,只要自定义一个GUI_DEVICE_API,然后传递给GUI_DEVICE_CreateAndLink()即可。
别用nuvoton内置的GUIDRV_LIN_16、GUIDRV_LIN_24、GUIDRV_LIN_32这类驱动就行。

#6 Re: 全志 V3S/F1C100s/X3 » 荔枝派Nano联网???? » 2020-06-17 08:33:34

嵌入式冲 说:

https://whycan.cn/files/members/4270/22_20200617-0127.png

为什么明明在里面也不能。颜色有什么含义吗

是不是应该这样“./iwlist”

#7 Re: 全志 V3S/F1C100s/X3 » 基于RTThread的F1C100s开发(带boot启动+硬件多图层+硬件游标+LVGL+SDIO) » 2020-06-15 19:04:30

rf 说:

执行mksunxi.exe 时候 报出找不到MSVCR120D.dll,找了个msvcr120d.dll和mksunxi.exe放到一块,弄好了。。。。。

换个版本的mksunxi.exe吧,你这个不是mingw编译的;mingw编译的不会依赖这个dll。
用这个:
mksunxi.7z

#8 Re: 全志 V3S/F1C100s/X3 » 求个F1C的工程师 » 2020-06-12 18:25:30

期待那个饿汉的出现,大家围观 wink

#11 Re: 全志 V3S/F1C100s/X3 » f1c100s spi不能使用burst模式??? » 2020-06-04 12:50:18

chenshengwei 说:

这个可以通过DMA加快速度吗?

能减少传输的空隙时间,从而加快加载速度。

#12 Re: 全志 V3S/F1C100s/X3 » f1c100s spi不能使用burst模式??? » 2020-06-03 10:09:06

myxiaonia 说:

可以用类似我开头那种做法,完全可以一次性读完,不需要64字节分组收发嘛,就是不知道为何不对:(

试试看这样写行不?

void sys_spi_flash_read(int addr, void* buf, int count)
{
    uint8_t *p = (uint8_t *)buf;
    
    sys_spi_select();

    SPI0->MBC = 4;
    SPI0->MTC = 4;
    SPI0->BCC = 4;
    SPI0->TXD = 0x03 | util_rev(addr);
    SPI0->TCR |= SPI_TCR_XCH;
    while (SPI0->FSR & 0xff) < 4);
    read8((uint32_t)&SPI0->RXD);
    read8((uint32_t)&SPI0->RXD);
    read8((uint32_t)&SPI0->RXD);
    read8((uint32_t)&SPI0->RXD);

    SPI0->MBC = count;
    SPI0->MTC = 0;
    SPI0->BCC = 0;
    SPI0->TCR |= SPI_TCR_XCH;
    while (count > 0) {
      if((SPI0->FSR & 0xFF) > 0)
      {
          *p++ = read8((uint32_t)&SPI0->RXD);
          count -= 1;
      }
    }

    sys_spi_deselect();
}

#13 Re: 全志 V3S/F1C100s/X3 » f1c100s spi不能使用burst模式??? » 2020-06-02 17:28:37

myxiaonia 说:

读FIFO时,SPI是停止的;这里的确浪费了传输机会。
不过,count循环中并不会重复发送4字节命令和地址,因为在读取数据时,sys_spi_transfer函数的txbuf参数是NULL,所以循环内的sys_spi_write_txbuf函数会立即返回,没有实际数据发送的。
https://whycan.cn/files/members/1592/2020-05-29_100040.png

我还没用逻辑分析仪测量过。要把这些时间省下来,就只能靠DMA了。

#14 Re: 全志 V3S/F1C100s/X3 » f1c100s spi不能使用burst模式??? » 2020-05-29 12:06:42

myxiaonia 说:

这个确实是,那就是只有2个字节的开销,看上去也比较小

我看了手册,F1C100s不支持SPI双线接收模式【即4个clk传输8位的模式】,所以没多少优化空间了。

#15 Re: 全志 V3S/F1C100s/X3 » f1c100s spi不能使用burst模式??? » 2020-05-29 10:07:54

myxiaonia 说:

感谢Armstrong的亲临指导,我今天再去测试一下原来代码spi读写的情况,spi频率太高了示波器太烂丢脉冲,不过应该可以发现问题的

原来的代码相当于将总的数据收发切割成64字节成组收发,并且读取rxfifo时候还是spi停止的
64+4字节收发->读rxfiofo,然后再重复这个过程

读FIFO时,SPI是停止的;这里的确浪费了传输机会。
不过,count循环中并不会重复发送4字节命令和地址,因为在读取数据时,sys_spi_transfer函数的txbuf参数是NULL,所以循环内的sys_spi_write_txbuf函数会立即返回,没有实际数据发送的。
2020-05-29_100040.png
上层的flash读函数实际上这样解释:

static int sys_spi_write_then_read(void* txbuf, int txlen, void* rxbuf, int rxlen)
{
  // 发送命令+地址
  if (sys_spi_transfer(txbuf, NULL, txlen) != txlen)
    return -1;
  // 连续接收纯数据
  if (sys_spi_transfer(NULL, rxbuf, rxlen) != rxlen)
    return -1;
  return 0;
}

#16 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-05-28 21:49:56

cccsk 说:

楼主,屏幕有没有链接?

随便买哪个都行,不过还是tiny200开发起来更便利些。
tiny200.jpg
lichee-nano.jpg

#17 Re: 全志 V3S/F1C100s/X3 » f1c100s spi不能使用burst模式??? » 2020-05-28 21:32:20

F1C100s的SPI模块有64字节接收FIFO和64字节发送FIFO。
上面的代码把count分成多份接收,每份最多接收64字节,这是充分利用接收FIFO;发送同理。
每次往TXD寄存器只写1个字节,没试过你这样往TXD一次写4字节。
其实即便一次写4字节,也不能提高速度的;因为处理器写1字节的时间远小于SPI传送1字节的时间,所以最终瓶颈还是在SPI传输上。

#18 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 求版主开放下载权限 » 2020-05-27 14:34:17

lhc200 说:

我在淘宝买的商品
下载rom镜像还要回帖,真是麻烦

求版主开放下载

你是不是搞错了,淘宝上的开发板跟这里的版主(/站长?)不是同一个人吧?
我跑到营业厅大喊:我手机都买好了,还要另外花钱买话费?真tm麻烦,赶紧给我话费!

#19 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/ » 强磁场对信号有没有干扰? » 2020-05-26 21:25:20

Quotation 说:

产品里有一处需要用到磁铁。磁铁旁边几mm处是显示屏的FPC排线,上面走几十MHz的SPI信号。
请问磁铁会不会干扰SPI信号?
如果有,有什么屏蔽的方法?
一般的铜箔胶带是不是只能屏蔽电磁,对纯磁场无效?

高速运动的电子在磁场里会改变运动方向的,所以电子可能会脱离导线崩到板子上或者其它芯片上!为了防止这种事情发生,可以在导线上敷上厚厚一层热熔胶,这样电子就不会跑出来了。

#20 Re: 计算机图形/GUI/RTOS/FileSystem » ARM裸机的cache效率问题 » 2020-05-23 11:17:43

xsxusen05 说:

没有用,只是测试一下而已。

如果没用双缓冲,这个现象就是正常的。无法说明CPU慢之类的。

#21 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-05-22 13:43:59

armstrong 说:

这不是你的错,你的姿势很美!淘宝现在跟百度一个样,成了流氓,不交钱就别想被搜索到!

#22 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-05-22 13:43:16

vvi 说:

看了楼主的介绍想买片tiny200v2试试,淘宝上搜tiny200一个没有,搜荔枝派只有Zero LicheePi Zero  、nano。
是我搜索的时候姿势不对?

这不是你的错,你的姿势很美!淘宝现在跟百度一个样,成了流氓,不交钱就别想被搜索到!

#23 Re: 计算机图形/GUI/RTOS/FileSystem » ARM裸机的cache效率问题 » 2020-05-22 12:26:06

xsxusen05 说:


直接写显存的象素,用的是720MHzCPU频率,代码基于达克罗德大神的minimal_f1c100s_framebuff,屏幕是4.3寸480*272。
看这个刷新速度一点也不正常哇。

做个双缓存帧同步切换,就不会这样了。

#24 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-05-21 10:13:56

gary 说:

能支持MCU的2.8寸屏吗?8位或16位数据接口的

这芯片没有片外SRAM接口;因而需要用IO口模拟来实现,当然效率会很低。
这么小的屏幕,通常都选择SPI接口的,就可以用硬件SPI。

#25 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-05-21 09:49:36

mirkerson 说:

楼主 可以分享个支持触摸屏的源码吗

找找看本站有没有相关资源;若有,自己整合一下吧。只要有IIC+NS2009+TSLIB驱动,再写个5点校准窗口。
我把扩展的功能作为打赏的福利,以节约网友的开发时间,所以不能公开。

#26 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-05-20 15:39:53

ling 说:

大佬,这个裸机用的什么下载器下载的呀,求推荐

不用下载器,一根micro-USB连接线足矣。

#27 Re: 计算机图形/GUI/RTOS/FileSystem » 谁有emwin的arm9 gcc linux版本的静态库? » 2020-05-13 18:23:05

找了下资料,没看到GNU-ld有redirect功能;而【mdk的】armlink和【IAR的】ilinkarm都有!

#28 Re: 计算机图形/GUI/RTOS/FileSystem » 谁有emwin的arm9 gcc linux版本的静态库? » 2020-05-13 18:06:34

用链接器的redirect功能,把库里的某几个函数旁路掉,自己写函数代替。
或者索性自己写个GUI_DEVICE_API,别用内置<GUIDRV_Lin.h>文件里的驱动就行。
自定义驱动形式如下,有模板的,不难实现,针对内存操作的更简单:

const GUI_DEVICE_API GUIDRV_Template_API = {
  //
  // Data
  //
  DEVICE_CLASS_DRIVER,
  //
  // Drawing functions
  //
  _DrawBitmap,
  _DrawHLine,
  _DrawVLine,
  _FillRect,
  _GetPixelIndex,
  _SetPixelIndex,
  _XorPixel,
  //
  // Set origin
  //
  _SetOrg,
  //
  // Request information
  //
  _GetDevFunc,
  _GetDevProp,
  _GetDevData,
  _GetRect,
};

#30 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-28 15:35:07

tomyqg 说:

好的,感谢,我先把sunxi-fel源代码看看

这两种实现思路,只要任意一个实现,那都是造福其他玩家的好东西。

#31 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-28 15:24:09

tomyqg 说:

思路没问题就好了,USB从机论坛大神不是已经搞定了吗,研究下应该可以搞好。另外这个f1c100s-spl_uart0.bin是从其他工程编译出来的吗?

f1c100s-spl_uart0.bin是项目里的spl部分抽出来单独编译起来的,你只要删除无用代码编译一下就能制作出来。
之所以分为f1c100s-spl_uart0.bin和f1c100s-spl_uart1.bin,是因为tiny200v1和v2是用不同的串口。
Blinky-f1c100s和FELinside-f1c100s都有spl部分,去掉其他代码剩下spl即可。

#32 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-28 15:22:00

tomyqg 说:

思路没问题就好了,USB从机论坛大神不是已经搞定了吗,研究下应该可以搞好。另外这个f1c100s-spl_uart0.bin是从其他工程编译出来的吗?

完成同样功能,还有个思路就是自己添加sunxi-fel功能,因为sunxi-fel可以通过usb接口传输一段ARM指令到设备,然后执行它;目前的任何sunxi-fel功能都是这么实现的。可以通过这种方式增加写tf卡和sd-nand的功能;不用模拟成u盘。扩展后的命令形如:
sunxi-fel -p sdnand-write 0 xxx.bin

#33 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-28 15:13:30

tomyqg 说:

我的意思是这个f1c100s-spl_uart0.bin是从那个工程编译出来的,FELinside这个工程如果直接出来DRAM U盘就可以将spl和app文件写入SD卡,spl里面只要能读写SD卡就可以加载app了吧

f1c100s-spl_uart0.bin是项目里的spl部分抽出来单独编译起来的,你只要删除无用代码编译一下就能制作出来。
之所以分为f1c100s-spl_uart0.bin和f1c100s-spl_uart1.bin,是因为tiny200v1和v2是用不同的串口。

#34 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-28 15:10:36

tomyqg 说:

比如我想从SD NAND(贴片SD卡)里启动,要么在SD NAND 焊到板子上之前将程序烧进去,要么焊到板子上再烧程序上去,这时如果能将DRAM模拟成U盘,直接在电脑上将spl和app拖进去,然后将spl和app烧录进SD NAND,实现程序烧录

嗯,懂了。理论上你可以基于FELinside-f1c100s或者f1c100s-uboot制作出这么个东西来,尚且称它未fel-boot吧。
fel-boot由sunxi-fel送入ddr运行,负责把dram模拟成u盘,等着用户把uboot和linux内核放进“u盘”。但我没搞定usb呢,做不了啊。
我看这东西做起来即使不开源,对别人也是很有用的。
完成同样功能,还有个思路就是自己添加sunxi-fel功能,因为sunxi-fel可以通过usb接口传输一段ARM指令到设备,然后执行它;目前的任何sunxi-fel功能都是这么实现的。可以通过这种方式增加写tf卡和sd-nand的功能;不用模拟成u盘。扩展后的命令形如:
sunxi-fel -p sdnand-write 0 xxx.bin

#35 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-28 14:50:55

tomyqg 说:

我的意思是这个f1c100s-spl_uart0.bin是从那个工程编译出来的,FELinside这个工程如果直接出来DRAM U盘就可以将spl和app文件写入SD卡,spl里面只要能读写SD卡就可以加载app了吧

我理解不了“FELinside这个工程如果直接出来DRAM U盘就可以将spl和app文件写入SD卡”这句?

#36 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-28 14:26:42

tomyqg 说:

洪工,这个spl(f1c100s-spl_uart0.bin)是那生成的啊,另外FELinside这个工程可以直接在DDR运行,后面如果加上usb dram U盘及SD驱动功能,是不是可以做SD NAND启动的SPL了啊

spl负责配置cpu主频,初始化ddr,然后从spi flash中加载app剩余部分;它尚未支持从nand或者sd卡加载。
要真想从nand或sd加载,那板子上还得留spi-flash,然后基于f1c100s-uboot项目做一个bootloader,来负责从nand或sd加载。

#37 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-28 14:02:47

tam2907 说:

感谢,刚才对比看了V1 V2原理图触摸驱动触摸的IO完全不一样。

谢谢,对比了一下pdf,还真是改过了!所以又适配了一下:
tiny200v1
Tiny200v1_LCD480x272_NS2009.zip
tiny200v2
Tiny200v2_LCD480x272_NS2009.zip

#38 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-28 13:40:16

zq190kg 说:

本人刚接触F1C100S,手上 有个荔枝派,请问编译后好,就用sunxi那个win下的软件下载到荔枝派的flash上吗?

对!让板子进入usb-boot模式,然后安装驱动,接着就可以sunxi-fel了。

#39 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-28 10:19:42

tam2907 说:

感谢,刚才对比看了V1 V2原理图触摸驱动触摸的IO完全不一样。

要用这个测试:F1C100s_RTX_emWin_LCD480x272_NS2009.zip

#40 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-28 08:26:22

tam2907 说:

TINY200烧这个程序运行点校正没反应说明触摸坏的么?

只在licheepi-nano和tiny200v1上可用,接到红色的tiny200v2板上没用,不知道是不是电阻什么的没焊。

#41 Re: 全志 V3S/F1C100s/X3 » 搞定NS2009驱动 校准后没有大幅度的跳点 » 2020-04-26 19:27:19

那我这个固件测试看看,会不会跳点:
F1C100s_RTX_emWin_LCD480x272_NS2009.zip
用F1C100s硬件IIC的,充分利用中断的方式开发,不用浪费高速CPU死循环检测INT_FLAG标志!也不是用os_delay插在循环中。

#42 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-26 18:53:19

好多人都说NS2009有跳点,其实不是芯片本身的问题。我做好了这个大家拿起测试看看,稳得很啊。
F1C100s_RTX_emWin_LCD480x272_NS2009.zip
不仅没有跳点,还每秒钟向GUI送100个触摸点,这个频率响应够快了吧!可以连接UART0看输出,点击屏幕就有输出。

#44 Re: 全志 V3S/F1C100s/X3 » 调通F1C100s的SPI DMA » 2020-04-26 11:37:08

ntmusic 说:

水一贴,DMA结合操作系统才能比较好发挥优势,在等待DMA传输结束时CPU可以很方便的切换出去做别的事情,而裸机则一般要通过设置状态结合中断来使用,程序结构也会变得奇奇怪怪,若使用查询等待的话可能还不如直接使用CPU操作来的快,因为CPU一般拥有总线最高优先权

说的很对,一点都不水!

#46 Re: 全志 V3S/F1C100s/X3 » 关于F1C100s的DMA使用 » 2020-04-25 13:43:34

armstrong 说:

还有一个指定index的操作,不过这个操作无法针对虚拟地址,几乎无用。除此之外应该是没办法了。
Cortex-M7也有cache需要管理,它的库里也是只能遍历来操作指定内存区域:

void MMU_InvalidateDCacheArray(unsigned long mva, unsigned long num)
{
  signed long size = num;
  while (size > 0) {
    MMU_InvalidateDCacheMVA(mva);
    mva += CACHE_ALIGN;
    size -= CACHE_ALIGN;
  }
}

另外一种惯用的方法就是,自己定义一个heap,这个heap用于管理non-cacheable的内存块;
就学学linux,用kmalloc申请的内存可以指定GFP_DMA类型,它就是从关闭cache的内存页分配。

#47 Re: 全志 V3S/F1C100s/X3 » 关于F1C100s的DMA使用 » 2020-04-25 13:40:02

Quotation 说:

看了这几个cache相关函数的实现,有个疑问。函数里需要遍历整块内存,以32字节为单位去调用 MCR p15……。这样岂不是很低效?
如果我有几百K的数据从外设读回来,实际上CPU cache只有一点点,并不需要遍历几百K去invalidate cache。
那怎样能够仅仅invalidate需要的cache呢?当然可以invalidate整个cache,还有没有更精简的方法呢?

void MMU_InvalidateDCacheArray(unsigned long mva, unsigned long num)
{
  signed long size = num;
  while (size > 0) {
    MMU_InvalidateDCacheMVA(mva);
    mva += CACHE_ALIGN;
    size -= CACHE_ALIGN;
  }
}

还有一个指定index的操作,不过这个操作无法针对虚拟地址,几乎无用。除此之外应该是没办法了。
Cortex-M7也有cache需要管理,它的库里也是只能遍历来操作指定内存区域:

__STATIC_FORCEINLINE void SCB_CleanDCache_by_Addr (uint32_t *addr, int32_t dsize)
{
  #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U)
    if ( dsize > 0 ) { 
       int32_t op_size = dsize + (((uint32_t)addr) & (__SCB_DCACHE_LINE_SIZE - 1U));
      uint32_t op_addr = (uint32_t)addr /* & ~(__SCB_DCACHE_LINE_SIZE - 1U) */;
    
      __DSB();

      do {
        SCB->DCCMVAC = op_addr;             /* register accepts only 32byte aligned values, only bits 31..5 are valid */
        op_addr += __SCB_DCACHE_LINE_SIZE;
        op_size -= __SCB_DCACHE_LINE_SIZE;
      } while ( op_size > 0 );

      __DSB();
      __ISB();
    }
  #endif
}

#48 Re: 计算机图形/GUI/RTOS/FileSystem » 零法律风险白嫖uC-OS3 » 2020-04-24 19:54:55

uC/OS-II,uC/OS-III两姐妹都已深入嫖过,其实在她们老爹放开她们之前就搞上了,说实话挺爽的。

#49 Re: Cortex M0/M3/M4/M7 » 点菜宝---到手测评 » 2020-04-24 19:45:41

这机器里什么型号单片机?来几张拆机图片呗。

#50 Re: 全志 V3S/F1C100s/X3 » 入坑F1C100基于网友armstrong的“为大家制作了F1C100s的RTX4+emWin5稳定项目!”工程添加串口鼠标控制 » 2020-04-24 17:39:02

天道酬勤 说:

是的

厉害!都是高水平的制作,特别是那个GSM文件管理器和GSM-CAR-CLOCK,太优秀了!

#51 Re: 全志 V3S/F1C100s/X3 » 关于F1C100s的DMA使用 » 2020-04-24 17:24:46

如果直接把变量放在ncnb属性的区块,是方便很多;但会降低cpu访问这些数据性能。

#52 Re: 全志 V3S/F1C100s/X3 » 关于F1C100s的DMA使用 » 2020-04-24 17:23:52

cpu把数据写到内存,然后交给外设或dma,要用clean;
cpu读取由外设或dma放在ram的数据之前,要invalid;
dcacheinvalid和dcacheclean指令,要么是针对mva的,要么是针对cache-line的,要么就整个dcache
所以MMU_InvalidateDCacheArray函数封装了mva的遍历。
对ram变量也有cache-line对齐的要求,即变量或数组的大小和地址必须32字节对齐,否则会破坏变量。

#53 Re: 全志 V3S/F1C100s/X3 » 谁有V3S或者F1C100s的DMA例程? » 2020-04-24 17:11:05

既然不能收藏,做个标记先:F1C100s的DMA。

#54 Re: Cortex M0/M3/M4/M7 » CM3内核学习疑惑 » 2020-04-24 16:22:14

既然你在学习这些通常被其它人忽略的基础,这几本书推荐给你【画框的那些】,最后都买上,真的很有帮助!
QQ图片20200424163435.jpg
QQ图片20200424163429.jpg

#55 Re: Cortex M0/M3/M4/M7 » CM3内核学习疑惑 » 2020-04-24 16:21:05

这种知识,面对面交互提问,回答的方式可以很快讲清楚。文字表述会搞死人还不一定懂。

#56 Re: 全志 V3S/F1C100s/X3 » 关于F1C100s的DMA使用 » 2020-04-24 16:12:39

cache和mmu是arm9的法宝啊,要学会使用它们才行。这个经验才Cortex-M7上也用得着。

#57 Re: 全志 V3S/F1C100s/X3 » 关于F1C100s的DMA使用 » 2020-04-24 16:10:12

对cache的使用知识,是裸机开发ARM9必备啊。你可以从我的rtx+emwin包里,找到mmu_c.c和mmu_a.s,我把所有mmu操作的api都放在里边了。你这个情况,只要调用我的MMU_InvalidateDCacheArray函数,使dma访问过的ram对应的cache无效就行了。注意,“无效”和“清理”是两个截然不同的概念。

#58 Re: 全志 V3S/F1C100s/X3 » 入坑F1C100基于网友armstrong的“为大家制作了F1C100s的RTX4+emWin5稳定项目!”工程添加串口鼠标控制 » 2020-04-24 15:33:43

楼主emWin玩得好溜,视频里设备UI界面很好看。优酷账号下的那些视频都是你做的吗?

#59 Re: 全志 V3S/F1C100s/X3 » 入坑F1C100基于网友armstrong的“为大家制作了F1C100s的RTX4+emWin5稳定项目!”工程添加串口鼠标控制 » 2020-04-24 15:30:26

哇酷小二 说:

感谢反馈, 不过我这里测试一切正常,我去你的Q群下载传上去吧。

我这里上传16MB的文件也不行,但是分包压缩后就能上传。是不是文件大小限制的太低了?

#61 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-23 12:10:44

有梦的地方 说:

反过来想想其实这是好事,当能收到律师函的时候说明已经不是蚊子腿了,否则咬下去也没肉吃,买正版也是应该的。

长者告诫我们要闷声发大财,如果真的腿上有肉也最好别秀给人家看。

#62 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-23 10:22:14

Iven 说:

如果自己创业想用这套方案,寄给公司还不是寄给自己。

好,你暴露了,律师函开始上路了!

#63 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-23 09:15:05

好多网友都很有版权意识,这很好很理想,不过现实情况是没几个公司给员工配备正版软件,员工家里的电脑更不可能购买这些昂贵的开发工具!开发者聊技术就行了,版权是商业问题,技术开发者别纠结了。明明电脑里99%的盗版软件,却在嘴上正版正版,比老板还关心版权,有点尴尬。

#64 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-23 09:02:41

Iven 说:

全志芯片有emwin的版权吗?

还不如直接去问全志呢。不过,这个是keil内置的emWin,跟全志没有半毛钱关系;你只要花钱买了mdk正版,随便什么arm都让你用。这就是我为什么要删除原来包里自带mdk库的原因。因为你可能买了mdk正版,而我传播它的库是不被许可的。
全志一直在啃老本,不会有增加这些版权投入的预算了。

#65 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-23 09:02:01

Jmhh247 说:

感谢楼主分享!

“直接写入开发板的bin文件:”——没找到荔枝派nano的,没上传吗,手上没tiny200 。。。

荔枝派nano用RTX4_emWin5_F1C100s_tiny200v1.zip即可。V1和V2的区别也就是串口不同,仅此而已。

#66 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-23 08:34:27

cwspads 说:

下载了源码,尝试修改LCD分辨率为800x480,运行不起来,翻看代码,没找到怎样修改具体参数,楼主能指出吗?

2020-04-23_082330.png
2020-04-23_082633.png
20200423082929.jpg

#67 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-22 22:37:55

晕哥 说:

太赞了, 感谢楼主再次分享宝贵经验!

得对得起站长和网友啊!帖子特地去掉了隐隐的“铜臭味”,让网友们开心点。

#68 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-22 22:35:14

pcb_diy 说:

来支持一下。这个小板在哪有得卖?支持的LCD型号是什么样的?这芯片好像挺猛啊,比STM32要强好多。有空得跟各位大师后面学习一下。

玩全志,来哇酷就对了。我告诉你板子,你别怀疑我是托就行:楼主位说的三款板子我都有,推荐tiny200。LCD么,只要40pin的差不多都行吧,没厂家会无故改插座线序的。

#69 Re: 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-22 22:19:21

老帖子已请求站长作废删除,另开此贴分享。欢迎大家交流!

#70 全志 V3S/F1C100s/X3 » 哇酷网友都乐于分享:为大家制作了F1C100s的RTX4+emWin5稳定项目! » 2020-04-22 22:03:47

armstrong
回复: 123

在哇酷网在线时间并不算长,但却很快就能找到合适的学习资料。这是因为有大量热爱分享的网友给哇酷添砖加瓦,也是由于哇酷提供了交流的平台,节省大家的时间。
    对于全志F1C100s/F1C200s芯片,官方主导的玩法是linux,社区也是顺着这种玩法,不断扩充。但是广大单片机开发者通常缺乏Linux开发经验,而且对具备MMU+Cache的ARM9也不够熟悉,因而无法快速上手这几款性价比无敌的SoC,只能望洋兴叹。况且,在与好多网友交谈后得知,好多项目并不适合使用linux——linux不是万金油,RTOS才是真爱。于是,我结合自己一直以来对ARM9的熟悉,制作了这个移植,基于单片机开发者熟悉的keil-mdk环境,为广大单片机开发者降低门槛,让你打开熟悉的Keil就有可用的RTOS【RTX4】和GUI【emWin5】!其它组件在keil下也并非难事。(我的环境是MDK5.29,尽量使用相同版本,如果比我低可能会丢失项目某些选项!)
    项目的好多驱动是基于xboot和网友的精简代码,引用的文件首部保留原作者信息文本。我做的工作是整合代码,以及RTX4+emWin5的移植部分,RTOS的基础是中断控制和Timer,这部分重新实现了。具体的内容你拿到源码查看就能发现,不再多说。
    因为我对RTX4比较了解,移植的质量可以保证稳定【除非不是我的代码部分】;emWin很好用,我觉得很多人都用过。大家尽情使用吧,把F1Cx00s玩溜起来!启动1.7MB程序时间大约500毫秒,视程序大小而定。
    项目直接支持的开发板有:
    widora的tiny200 v1
    widora的tiny200 v2
    sipeed的lichee-pi nano
    推荐使用widora的tiny200开发板,板子为单片机开发者设计了boot和reset按钮,因而进入FEL模式非常方便!板子还自带USB转串口芯片,可作为终端串口,方便调试信息输出。据说V2板还加了音频功放电路,直驱小喇叭。
    优酷演示视频:https://v.youku.com/v_show/id_XNDYxNjc2MTk4MA==.html
    国内码云地址【推荐,只是因为快】:https://gitee.com/xuyao2020/F1C100s_with_Keil_RTX4_emWin5
    国外github【好慢,图片几乎全挂,因为gfw的存在,国内开发者总在夹缝中求生存】:
    https://github.com/hongxuyao/F1C100s_with_Keil_RTX4_emWin5
    源码打包下载:
    AllwinnerSoC_part1.rar
    AllwinnerSoC_part2.rar
    AllwinnerSoC_part3.rar
   直接写入开发板的bin文件:
   RTX4_emWin5_F1C100s_tiny200v1.zip
   RTX4_emWin5_F1C100s_tiny200v2.zip
   图赏
index.jpg
2.jpg
a_20200422-2142.jpg
b_20200422-2143.jpg
c_20200422-2143.jpg
d_20200422-2143.jpg
e.jpg
f.jpg
g.jpg
h.jpg
    如何适配tiny200v2【因为终端串口有变】
AllwinnerSoC说明_页面_1.png
AllwinnerSoC说明_页面_2.png

#71 Re: 计算机图形/GUI/RTOS/FileSystem » AWTK 1.4 发布 » 2020-04-22 09:41:41

百度云盘里最新是1.3 rc3,还没有1.4呢。

#72 Re: 计算机图形/GUI/RTOS/FileSystem » 零法律风险白嫖uC-OS3 » 2020-04-19 18:31:27

Blueskull 说:

Apache协议放出来了,你怕啥?出了事Silabs顶着。如果Micrium起诉Silabs赢了,顶多是Micrium要求你停止侵权,没权力要求你赔偿。

楼主去搜索以前的新闻吧,Micrium早就整个卖给silabs了;还哪来的输赢之说。

#73 Re: 全志 V3S/F1C100s/X3 » 试试用F1C100s来3D绘图 » 2020-04-15 12:21:56

ntmusic 说:

我只是搬运了一下代码。。我参考的是这篇帖子,基于Frambuffer后端实现
https://blog.kaaass.net/archives/1340

你这个演示bin,cpu主频和ddr频率是多少啊?写入flash运行,经常性宕机。

#74 Re: 全志 V3S/F1C100s/X3 » 试试用F1C100s来3D绘图 » 2020-04-14 22:10:34

楼主牛逼!分享一下移植过程吧,光看着眼馋。

#75 Re: 全志 V3S/F1C100s/X3 » f1c100s怎样才能timer产生并进入中断? » 2020-04-01 19:10:48

超级萌新 说:

arm9体系结构决定的,这个地址就是 irq 的中断地址。

把新的指针(地址)放到这个地址。


在 cortex M3 里面,不再是存中断地址 而是一条 跳转指令。

你说反了。应该是Cortex-M3里面不再是跳转指令而是中断函数地址。
ARM9里0x38放的是函数地址,0x18地址是跳转指令;一般放的是LDR指令,负责把0x38处的函数地址Load到PC实现跳转。

#76 Re: 计算机图形/GUI/RTOS/FileSystem » 谁有emwin的arm9 gcc linux版本的静态库? » 2019-12-04 10:57:50

另外,要使用能编译busybox的gcc版本,不要使用裸机编译器;因为它们的c/c++库不一样。

#77 Re: 计算机图形/GUI/RTOS/FileSystem » 谁有emwin的arm9 gcc linux版本的静态库? » 2019-12-04 10:53:48

大帅 说:

@armstrong
大神我在f1c100上面试了: 提示打不开/dev/ge2d,没有硬件加速。。。

另外我编译的时候用的是arm-none-linux-gnueabi-gcc不知道影响不?

# ./NuvotonGUIDemo
uVideoSize = 0x177000
var.xres = 0x320
var.yres = 0x1e0
pVideoBuffer = 0xb6d8f000
Main Task thread
WM_SetCreateFlags(WM_CF_MEMDEV)
GUI_Init()
GUI_X_Config()
GUI_ALLOC_GetNumUsedBlocks()=0x0
LCD_X_Config()
### g_xres=800 g_yres=480 g_bits_per_pixel=32
LCD_GetSwapXY()
LCD_SetVRAMAddrEx(0, (void *)pVideoBuffer)
No LCD calibration
Cannot open ge2d!
^C
#
#

sorry,你不能使用nuvoton里的LCDConf.c,要自己适配一个。
用这个模板即可,稍微改一下就行的。
比如你制作了自己的GUIDRV_Template16_API或者GUIDRV_Template32_API,然后把这个替换LCDConf.c里的这里
    if (g_bits_per_pixel == 32)
    GUI_DEVICE_CreateAndLink(&GUIDRV_Template32_API, GUICC_M888, 0, 0);
    else
    GUI_DEVICE_CreateAndLink(&GUIDRV_Template16_API, GUICC_M565, 0, 0);
模板:
https://whycan.cn/files/members/1592/GUIDRV_Template_c.txt

为什么要自己适配呢?因为nuvoton改写了emWin源码,把库里的GUIDRV_LIN_32/GUIDRV_LIN_16改成依赖ge2d的了。
自己适配一个就不用它们,自己来实现一个在内存块里绘制点、线、面的驱动程序。当然这并不复杂,因为emWin有模板。

#78 Re: 计算机图形/GUI/RTOS/FileSystem » 谁有emwin的arm9 gcc linux版本的静态库? » 2019-12-02 22:45:05

s3c2410/s3c2440是armv4t;
s3c2416才是跟f1c100s一样的,跟nuvoton也是一样的。

#79 Re: 计算机图形/GUI/RTOS/FileSystem » 谁有emwin的arm9 gcc linux版本的静态库? » 2019-12-02 15:51:23

还记得某位大神分享的emWin演示吗?它用的就是nuvoton发布的emWin库,运行几天几夜不死机。
https://whycan.cn/t_2689.html

#80 Re: 计算机图形/GUI/RTOS/FileSystem » 谁有emwin的arm9 gcc linux版本的静态库? » 2019-12-02 15:48:00

win32prog 说:

感觉不太可能吧, 这样不就打开了潘多拉魔盒?

潘多拉魔盒早就打开了,可以通用的emWin库有:
裸机: keil自带的,NXP发布的。
Linux:Nuvoton发布的。

#81 Re: 计算机图形/GUI/RTOS/FileSystem » 谁有emwin的arm9 gcc linux版本的静态库? » 2019-12-02 15:46:41

大帅 说:

上面的大神不是说没有限制么,另外好像新塘芯片没有id,
现在只待大神解惑,
或者晚上闲了回去再试试大神说的这个版本,

你用这个:
https://github.com/OpenNuvoton/NUC970_Linux_Applications/tree/master/emWin
注意自己适配一下LCDConf.c文件,里面的代码有点烂。

#83 Re: 计算机图形/GUI/RTOS/FileSystem » 谁有emwin的arm9 gcc linux版本的静态库? » 2019-12-01 14:30:22

大帅 说:

@晕哥:我下载下来看了,emwin里面的都没有fb驱动画点实现,怎么显示界面?

emwin只需要fb0映射得到的一个虚拟内存指针,这个指针交给emwin,剩下的事情emwin自己能搞定。所有绘图函数emwin自带的。

#84 Re: 计算机图形/GUI/RTOS/FileSystem » 谁有emwin的arm9 gcc linux版本的静态库? » 2019-12-01 14:28:44

如果是裸机开发,就用NXP最近发布的V5.50;如果是linux应用程序,就用nuvoton发布的V5.48k!
完美!这两个厂商发布的库,都比ST的版本新,而且它们没有做任何限制,ARM内核一致就可以用。

#85 Re: 计算机图形/GUI/RTOS/FileSystem » ARM裸机的cache效率问题 » 2019-12-01 14:26:04

我是这么处理的:显存也在cache区域的内存中,在帧同步中断里把显存对应的cache清理一遍就可以了。
这样,所有cache带来的便利和性能加持都用上了。

#86 Re: Cortex M0/M3/M4/M7 » 哪位神哥在用 mdk 自带的 RTX 系统? » 2019-12-01 13:51:33

我也在用。比ucos2强多了,跟ucos3差不多。关键是省心省力,它仅对ARM微控制器设计和优化,充分利用arm特性。

#87 Re: Cortex M0/M3/M4/M7 » 最近在逆向一个stm32的程序的时候的一点点心得 » 2019-12-01 13:37:55

微凉VeiLiang 说:

IDA Pro

谢谢!
我买过一本《IDA Pro 权威指南(第2版)》一直吃灰中,软件长啥样都不知道;只知道这工具是破解的好工具。

#89 Re: Cortex M0/M3/M4/M7 » 最近做个8X11行列键盘,我测试都很好,但是客户说有漏按键的。各位有什么经验介绍一下? » 2019-11-30 22:46:47

在定时器中断内执行一个状态机可以:初始拉低几个管脚 -> 读IO,拉低下一组 -> 读IO,拉低下一组 -> ……
如此重复下去即可。

#90 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » 上位机开发,用哪个平台好啊? » 2019-11-30 21:25:50

VB6程序在windows 10 64位都能用,在win7和win8也没问题的。
不如做个程序自动注册依赖的ocx和com接口的dll,VB6就能用了。

#91 Re: Nuvoton N32905/N32926/NUC972/N9H20/N9H26/N9H30 » NUC972DF62Y 淘宝零售价从36掉到28元, 与V3s处于同一水平了 » 2019-04-11 21:28:00

sy373466062 说:

问题在于NUC977居然比NUC972还贵,972太大了

我也觉得NUC972太大,NUC977很好;可惜贵了不少。这应该是市场现象吧,出货量越大的芯片越便宜。
真希望用NUC977的人多起来,那时候就会便宜下来吧。

#92 Re: 全志 V3S/F1C100s/X3 » 歪朵拉上线了全志S3/S3L的芯片零售服务 » 2019-04-10 23:33:02

mango 说:
山无棱 说:

包邮不是随便说说的,哈哈

https://whycan.cn/t_2219.html

好了,明确下:大陆内的挖坑网网友包邮

冲你这句话,我决定注册个账号加入挖坑网!就等歪朵拉出S3/S3L的板子了。

页脚

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