您尚未登录。

#1 Re: ESP32/ESP8266 » esp32p4我们来了~ (慢慢附上网上目前收集到资料) » 2024-12-29 23:22:41

Onism 说:

这个芯片牛的地方在于带H.264 encoder

直接转头去看BK7528,也有H264 编码,480MHz,内置16MB PSRAM和16MB Flash

#2 Re: 全志 SOC » 初学者小白的第一点疑问 » 2024-12-16 15:53:13

@Gaga
华芯微特M33架构的SWM34S,150MHz,内嵌8M SDRAM,带LCD控制器,价格十几块,如果对CPU性能要求不高,也可以选择选择。

#4 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » AWTK-WEB更新 » 2024-11-11 09:19:36

lixianjing 说:

* 优化编译脚本,加快编译速度。
* 优化代码生成,大幅减小wasm文件体积。
* 增加模拟器外壳。

https://whycan.com/files/members/1617/ui_20241110-1940.png

AWTK支持越来越丰富了。

#5 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » FreeRTOS运行Lvgl,应该如何设计框架的? » 2024-10-15 16:55:24

借助freeRTOS的队列,任务之间通讯。
app任务根据情况,需要显示的时候,发送队列信息,
lvgl做一个软件定时器,定时接收队列信息,改变显示。

#6 Re: 华芯微特 » 【华芯微特32位MCU相关资料】官网,资料以及购买渠道,联系方式 » 2024-10-10 09:02:23

vasill 说:

跟STM32比有什么优势吗?

这个厂家有一些内嵌SDRAM+LCD驱动器的单片机,价格比较实惠,资料也还OK。
比如SWM32S、SWM34S。
比STM32那些外挂SDRAM,成本要低很多。

#7 Re: 全志 SOC » f1c100s在clion使用jlink或stlink单步调试 » 2024-09-11 21:16:29

cris8259 说:

付费购买,欢迎大佬共享

淘宝有V3s,IAR的代码,可以Jlink调试。

V3s IAR代码资料-淘宝购买链接

#8 Re: 全志 SOC » 请教个问题,全志V3S的启动问题 » 2024-08-14 16:24:30

@wonrowl
我只知道,3.0V不焊接,识别不到USB。

别的情况,没出现过哈哈哈。

#9 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 有没有人做的nas方案可以借鉴一下 » 2024-07-24 13:44:03

自己用的话,搞个HTPC就可以。
再来一个kod explorer,网页文件管理。

#13 Re: 工业芯 匠芯创 » 开始进入平头哥的双千兆网时代 » 2024-06-15 09:36:10

Gentlepig 说:

问下,为什么用了3.3V供电的can驱动芯片?直接用5V的,就可以省掉24VB了吧?

24V应该是板子的取电电源。
把CAN的信号和电源做在同一个座子了。

#14 Re: 全志 SOC » F1C100内置语音识别算法的测试 » 2024-06-04 23:46:52

@achinwoo
我才发现,你这唤醒词,好骚啊。哈哈哈哈

#15 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 最近想做一款显示面板,求方案 » 2024-06-02 23:44:06

SWM32S或者SWM34S ,内嵌8MB SDRAM,带LCD控制器。12~18块。外设也丰富。
2楼已经给出最佳答案了。
另外,晕哥的f1c100s也不错。

#18 Re: 全志 SOC » 求教, 如何从 V3S 里面节省引脚 » 2024-05-01 19:58:31

@heidaren
我之前测试了一下,V3s裸机FATFS
4bit读写tf卡大概7MB/s
1bit读3.8 MB/s,写4.1MB/s

#20 Re: 全志 SOC » 分享一个自己做的T113-S3裸机IAR工程,有bootloader和led闪烁demo » 2024-02-27 13:39:42

串口3的时钟应该是开了,工程里面根据id作为偏移量开启时钟的。

void sunxi_usart_init(sunxi_usart_t *usart)
{
  uint32_t addr;
  uint32_t val;

  /* Config usart TXD and RXD pins */
  sunxi_gpio_init(usart->gpio_tx.pin, usart->gpio_tx.mux);
  sunxi_gpio_init(usart->gpio_rx.pin, usart->gpio_rx.mux);

  /* Open the clock gate for usart */
  addr = T113_CCU_BASE + CCU_USART_BGR_REG;
  val	 = read32(addr);
  val |= 1 << usart->id;
  write32(addr, val);

  /* Deassert USART reset */
  addr = T113_CCU_BASE + CCU_USART_BGR_REG;
  val	 = read32(addr);
  val |= 1 << (16 + usart->id);
  write32(addr, val);

  /* Config USART to 115200-8-1-0 */
  addr = usart->base;
  write32(addr + 0x04, 0x0);
  write32(addr + 0x08, 0xf7);
  write32(addr + 0x10, 0x0);
  val = read32(addr + 0x0c);
  val |= (1 << 7);
  write32(addr + 0x0c, val);
  write32(addr + 0x00, 0xd & 0xff);
  write32(addr + 0x04, (0xd >> 8) & 0xff);
  val = read32(addr + 0x0c);
  val &= ~(1 << 7);
  write32(addr + 0x0c, val);
  val = read32(addr + 0x0c);
  val &= ~0x1f;
  val |= (0x3 << 0) | (0 << 2) | (0x0 << 3);
  write32(addr + 0x0c, val);
}

时钟相关代码应该是这几行。
/* Open the clock gate for usart */
  addr = T113_CCU_BASE + CCU_USART_BGR_REG;
  val     = read32(addr);
  val |= 1 << usart->id;
  write32(addr, val);

  /* Deassert USART reset */
  addr = T113_CCU_BASE + CCU_USART_BGR_REG;
  val     = read32(addr);
  val |= 1 << (16 + usart->id);
  write32(addr, val);

#21 Re: 全志 SOC » 分享一个自己做的T113-S3裸机IAR工程,有bootloader和led闪烁demo » 2024-02-27 11:42:52

我是买的开发板,板载SPI Nand,已经修改为SPI nor。
T113-M2_board.png
板子用的是uart3,所以修改了一下代码。
T113-M2_UART.png
T113-M2_UART_code.png
编译,处理头部,烧录
T113-M2_UART_download.png

结果,灯亮了,但是串口没信息。

#22 Re: 全志 SOC » 之前rt-thread有支持t113的,现在不支持了,各位知道原因吗? » 2024-02-17 22:19:33

$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/allwinner_t113
  remotes/origin/aozima_dev
  remotes/origin/aozima_test
  remotes/origin/aozima_test1
  remotes/origin/gitee_fix
  remotes/origin/gitee_master
  remotes/origin/gitee_master_dev
  remotes/origin/github_EDI-Systems_pr1339
  remotes/origin/lts-v3.1.x
  remotes/origin/master
  remotes/origin/stable-v1.2.x
  remotes/origin/stable-v2.0.x
  remotes/origin/stable-v2.1.x
  remotes/origin/stable-v3.0.x
$ git checkout -b allwinner_t113 origin/allwinner_t113
Updating files: 100% (26292/26292), done.
Switched to a new branch 'allwinner_t113'
branch 'allwinner_t113' set up to track 'origin/allwinner_t113'.

#23 Re: 全志 SOC » 模仿stm32标准库风格写的库文件(f1c100s/f1c200s),且已移植了rt-thread、lvgl、fatfs、cherryusb » 2024-02-04 19:01:26

楼主牛,请问这个环境怎么debug呢?能不能指示一下怎么GDB调试呀。
是不是需要一些初始化DDR脚本什么的。

#24 Re: 全志 SOC » 请问F1C100S串口中有两个寄存器偏移地址都是一样的,芯片是怎么识别的? » 2024-01-25 18:54:48

这个地址是分时使用的。
配置DLAB前,和配置之后,访问的寄存器不一样。

#25 Re: 全志 SOC » 之前rt-thread有支持t113的,现在不支持了,各位知道原因吗? » 2024-01-23 18:26:28

dsp2000 说:

之前rt-thread有支持t113的,现在不支持了,各位知道原因吗?
在gitee能找到 rt-thread-allwinner_t113 这个项目的

这里,
https://gitee.com/aozima/rt-thread/tree/allwinner_t113/

#27 Re: RK3288/RK3399/RK1108 » 为什么瑞芯微公开资料这么少呢 » 2024-01-10 09:03:54

as86455011 说:

你看看隔壁全志,那个才叫资料少。搞个ddr都要遮遮掩掩

以前不是说过了吗?全志芯片几乎是方案芯片,
技术服务(方案资料)是一些上游代理商负责的,
你拿足够的芯片,啥资料都有了,
据说这样是为了保护代理商。
但是现在全志也在做开源资料了,像D1s什么的。
小白用户,说实话,没有教程,估计给资料了,也很难玩的动(没错,说的就是我自己)。

#28 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 40pin rgb屏和50pin rgb接口有什么区别呢?比如都是7寸800x480。增加问题,背光led电流控制在多少合适? » 2024-01-05 16:56:01

Gentlepig 说:

以前一直以为信号线都一样呢。
今天才知道不一样。50pin有vcom, vgh, vgl信号。
40pin一般有rtp信号,50pin的好像没见到。

有人能科普下这两种接口屏的区别吗?各有什么优劣?

可能是屏幕大了,所以驱动要求不一样,50P主要是多了负压、高压这些。

#30 Re: 全志 SOC » F1C100S GT911 问题 » 2023-12-19 23:33:02

whycan其他大神回应,买一个汇顶调试工具,校准一遍,得到配置数据,完美解决。

#31 Re: 全志 SOC » f1c100s入门+1 » 2023-12-16 11:02:38

wakulgz 说:

稍微定一下  有没有合适的ui软件推荐啊

AWTK YYDS

#32 Re: 全志 SOC » LVGL 只有物理按键 » 2023-12-15 20:00:09

按键产生事件,GUI负责帮你分发事件,你逻辑代码,让事件和控件联系起来就行了。

#33 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2023-10-15 19:22:13

bonito 说:

支持开源,而且是allegro格式!

我用的是荔枝派板子,你直接参考这个资料即可。

#34 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2023-10-15 19:21:38

wenjiu 说:

楼主,启动速度要多久?

这个帖子很久了,现在很难跟进了,好像是二十多秒启动完?

#35 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2023-10-09 09:41:58

zzy 说:

楼主能出一个配置adb的教程吗,配置了usb后不知道咋操作了,传不了文件

参考这一篇,可以用串口直接传文件
https://whycan.com/t_4266.html

#36 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2023-07-23 01:53:18

123546 说:

请教一下大佬,这个最后一步烧入bin文件到单板上怎么烧入的,有没有详细步骤。

教程在晕哥这个链接
编译、安装Windows版本sunxi-fel步骤 (32M spi flash补丁,支持W25Q256/MX25L256)
https://whycan.com/t_444.html#p1130

#37 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2023-07-09 11:40:10

jiabuda 说:

借楼问问,其实除了rz这种,是否有一些更高效的方式来进行开发呢?我现在编译lvgl,每次出来的执行文件都有300多k,传输一次一分钟,有点太慢

用usb adb,论坛里有。

#39 Re: 全志 SOC » 网上看到的F1C200s最新资料,包括Datasheet(V1.1)和User Manual(V1.2) » 2023-03-21 20:48:49

27527 说:

F1C100S是参考F1C200S的User Manual还是F1C600的User Manual

参考F1C200s的手册。

#41 Re: 全志 SOC » 新手自制f1c200s开发板 » 2023-02-17 21:43:24

不知道有没有兴趣上AP6212呢?
我看RTT是有这个驱动的,感觉可以参考RTT那个APT-Pi的SDK,来开发。

#42 Re: 全志 SOC » f1c100s 支持MCU接口的LCD 原理图 » 2023-02-16 20:47:43

f1c100s/200s 接MCU屏,引脚对应关系。
GPIOD[8:1]         ==> DAT [7:0]
GPIOD[17:10]     ==>DAT[15:8]
GPIOD[18]          ==>LCD_WR
GPIOD[19]          ==>LCD_RS
GPIOD[20]          ==>LCD_RD
GPIOD[21]          ==>LCD_CS

#43 Re: 全志 SOC » [F1C100S / F1C200S] Bare metal / RTOS hardware H264 effort » 2023-02-16 12:38:33

hoel 说:
Ozelot 说:
hoel 说:

我在裸机中使用了 DEFE,所以,是的,我认为它可以在主线中完成。3265649676

Can you share an example of working with DEFE?

Sorry i missed the message, sure contact me on the QQ email and i'll share.

I want it too. Could you send me a copy。
1032055624@qq.com
Thank you!

#44 Re: 全志 SOC » 在项目上选用F1C100s是否合适? » 2023-02-15 12:47:06

zenghc 说:

业余时间玩过lichee_zero和lichee_nano,在小企业里打算在一个简单RGB屏显的项目上选用F1C100s。评估过F1C100s资源是够用的,价格也便宜。不过F1C100s是arm9平台,已经比较古老了,现在采用这个是否合适,这个芯片是否会停产?

看应用需求,没有需求不能谈选型。

#45 Re: 上海航芯 » ACM32没有8080或6800这类并行接口 » 2023-02-09 20:09:08

海石生风 说:

想用ACM32驱动并口的12864 LCD时才发现,ACM32没有STM32那样的FSMC或新唐MCU那样的外部总线接口。
只能用IO模拟的方式来驱动,不太方便。不少国产MCU都这类并行接口。
建议添加并行接口来完善下。

12864支持SPI驱动,而且只需要用2根线/3根线就可以了。
建议使用SPI驱动,DMA+SPI,直接刷。

#46 Re: 全志 SOC » f1c100s入门+1 » 2023-02-08 17:28:17

@wakulgz
你这个结构比较简单,其实你可以直接挂SPI上面,用HC595+HC165进行输入输出扩展。
我经常这样用,接十来片HC595,没啥问题。
(理论上,无限扩展)。

#47 Re: 全志 SOC » 发现淘宝有卖F1C100S源码的 » 2023-02-08 17:25:33

wj8331585 说:

宝贝还在,却实太贵了

资料非常丰富,1500其实也就是几天的工资而已。
让你自己撸这些代码,不知道要搞多久,花钱买效率,物超所值。(个人观点,没有PY交易)

#48 Re: 全志 SOC » 问一下,F1C100S在KEIL上跑RTT操作系统系统。有大佬调通吗?哪里可以参考吗? » 2023-02-02 18:01:53

jack821119 说:

@LinjieGuo
我这边调试f1c100s+rtthread的时候,使用sunxi-fel将boot刷到flash的时候,boot程序多次没更新到spi flash中,后来晕哥说sunxi-fel不检测flash的存在。请问你这边用sunxi-fel刷新boot或者app又发现这种现象不?

没有出现你的情况,你可以参考这篇帖子,里面留了文件。

f1c200s运行rtt

#49 Re: 全志 SOC » 问一下,F1C100S在KEIL上跑RTT操作系统系统。有大佬调通吗?哪里可以参考吗? » 2023-02-01 21:58:08

Jkkk 说:

@LinjieGuo
厉害,我是个人学习。看了很多文档,现在还是一头雾水。
还有一个问题请教,在论坛或者GITEE下载的例程,为什么都是没有工程文件,只有很多.c.h,不知道是用什么开发的,如何打开?

直接在rtstudio上面开发即可,自动构建工程。
当然100s你要参考论坛的文章,解决启动加载问题。
我的一篇帖子有,您可以看看。手机回复就不引用了。

#50 Re: 全志 SOC » 问一下,F1C100S在KEIL上跑RTT操作系统系统。有大佬调通吗?哪里可以参考吗? » 2023-02-01 12:01:09

Jkkk 说:

看起来很齐全,不知道靠不靠谱。  贵是真贵

靠谱,V3s和100s我都买了,商用开发节省调试时间,效率顶呱呱。商用开发建议购买。
个人学习RTT,可以移步RTT文档中心,结合RTT文档以及Baidu搜索,也是不错的。我是在RT Studio上面开发,100s无法debug调试

#51 Re: 全志 SOC » F1C100S + FreeRTOS + USB Host » 2023-01-11 09:13:59

楼主你好,请问是文件上传遇到了什么困难吗?是否需要协助呢?

#52 Re: Cortex M0/M3/M4/M7 » 有没有带H.264编码的单片机? » 2023-01-04 10:46:40

wujique 说:

为什么我讲是单片机,其实就是针对现在大部分的都是linux+soc方案,他们需要的资源通常比较多。
那么mcu+rtos,就能节省资源,就能有成本优势。。。

BL808这个芯片太强大了,3核+无线,价格在sipeed上看好像是6刀。

因为,只要你不跑系统,他就是一个大号单片机啊。
100s有人跑linux,有人跑meils,有人跑裸机。。。

#53 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 杰里芯片官网开始拥抱社区了吗 » 2023-01-04 08:43:46

kekemuyu 说:

看到一份官网开发文档https://doc.zh-jieli.com/AC79/zh-cn/master/index.html,然后在淘宝和b站都有看到官方在普及芯片。芯片性价比真是无敌呀

2023/01/04,淘宝看到,样品售价,11元/片,还不错。
AC79.jpg

#54 Re: 上海航芯 » ACM32H5新产品需求及意见收集 » 2022-12-22 10:20:33

@saub
我也是这个观点,我自认没有焊接多引脚BGA的能力,选型时,会主动避开BGA封装。

#56 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » Shipping problems … continue » 2022-12-17 20:51:51

我买了个饭盒,收件地址,广东广州番禺8天没到,然后。。。
快递到了广州,提示:由于派件员忙,派送时间可能增加。
结果,物流居然直接退回去了。。。
I bought a lunch box. The delivery address was Panyu, Guangzhou, Guangdong. I hadn't been there for 8 days, and then...

When the express arrived in Guangzhou, it was suggested that the delivery time might increase due to the busy dispatchers.

As a result, the logistics actually returned directly...

#57 Re: 上海航芯 » ACM32H5新产品需求及意见收集 » 2022-12-16 23:23:10

我觉得主频低了一点,能不能干到400MHz以上呢?

#58 Re: 全志 SOC » F1C100S FreeRTOS工程,100%可用 » 2022-12-15 11:49:26

在whycan上传文件也是比较容易的,我截了个图,大哥可以看一看。
upload.png

#59 Re: 全志 SOC » F1C100S FreeRTOS工程,100%可用 » 2022-12-15 11:33:47

楼主可能是不知道怎么上传文件到whycan,
我刚好是CSDN会员,帮楼主把文件挪过来啦。(狗头保命)
另外,工程本身很小,git文件夹五十多MB,我删掉了。。。
whycan下载:F1C100S_FreeRTOS_no_git.zip
外站免费下载:F1C100S_FreeRTOS_no_git.rar(可能会失效)

#61 Re: 华芯微特 » 基于MDK-ARM的华芯微特SWM180+RTOS的JLINK开发环境建立--缥缈九哥 » 2022-12-07 08:40:43

吴助建 说:

这家公司是真的好,找遍整个官网,就是找不到keil 5的pack包.
奇了怪了.

链接:https://pan.baidu.com/s/1atLWlk1_SUR8WjISr-Bfpw
提取码:byv2
资料都放在这个网盘里面,官方构建的。

#62 Re: 好钜润半导体(TIKY) » 这么版块这么冷清? » 2022-12-05 21:49:06

据说是因为这个芯片好像不能仿真调试,很多人就放弃了

#63 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 有了解华芯微特公司的小伙伴吗 » 2022-12-01 17:19:05

bigbat 说:

最近看了一下华芯微特的SWM34S芯片,这颗芯片的性价比还不错,有了解华芯微特公司的小伙伴吗,这家公司经营情况怎么样,别费劲弄完了在来个停产那就不好玩了。

他们家芯片供货是稳定的,我目前在用SWM320,除了引脚不像STM32那样,IO口容忍3V3,其余的特性,简直的不要太爽。

#64 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » 尝试使用C#开发一款串口调试工具 » 2022-11-29 21:49:58

海石生风 说:

虽然我没搞过C#,但很明显 textBox_debug应该要像textBox_recv那样AppendText时要区分HEX和ASCII

嗯嗯,你说的这一点也是对的。
不过问题不是出在这个地方,问题是:数据内容接收到了,但是出现读取到的长度却不一致的情况。
后来在@周正的指导下,解决这个问题。
(1)使用ReadExisting()这个方法从串口接收中取数据,适用于字符串,可能不太适合面向字节流的数据。
(2)所以,接收代码修改为:

//串口接收事件
        private void ReceiveData(object sender, SerialDataReceivedEventArgs e)
        {
            byte[] datas = new byte[serialPort1.BytesToRead];
            int len = serialPort1.Read(datas, 0, datas.Length);

            //数据写入环形缓冲区
            recv_lp.write_data(datas, len);

            show_recv_data(datas, len);
            /*
                        string content = serialPort1.ReadExisting();        //从串口中读取输入流,返回string
                        ShowData(content);
            */
        }
        private void show_recv_data(byte[] data, int len)
        {
            //更新接收数据计数
            recv_cntr += (UInt32)len;
            lab_recv_cntr.Text = recv_cntr.ToString();

            if (rbtn_recv_hex.Checked)
            {//按HEX模式 展示接收到的内容 

                for (int i = 0; i < len; i++)
                {
                    textBox_recv.AppendText(string.Format("{0:X2} ", data[i]));
                }
            }
            else
            {//按ASCII模式 展示接收到的内容
                string str = System.Text.Encoding.Default.GetString(data);
                textBox_recv.AppendText(str);
            }

        }

#65 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » 尝试使用C#开发一款串口调试工具 » 2022-11-28 13:44:51

3、测试
    工程跑起来后,插入CH340G,将TX RX短接,
(1)设置为ascii模式,收发一切正常。
(2)设置为HEX模式,发送0x01、0x02 、0x99等不带字母的十六进制数,正常。
但是发送0xA0,这样带字母的十六进制数,就会出现以下情况。
uart_002.png

(为了调试方便,我加入了日志打印区。在发生接收事件时,做2件事情,①在接收区显示收到的数据,②在日志区显示收到了多长的数据)

[1]第一次发送0xA0,触发了接收事件,①显示区没有任何显示;②数据长度是0
[2]第二次发送0xA0,触发了接收事件,①显示区显示了2个A0;②数据长度是1
结果是,数据长度对不上。。。请问有没有大神懂这是什么原因呢?
附上工程:uart_tool_base_v001_20221128.zip
外链免费下载:uart_tool_base_v001_20221128.zip

#66 Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » 尝试使用C#开发一款串口调试工具 » 2022-11-28 13:35:58

LinjieGuo
回复: 4

嵌入式产品一般出场前要经过参数设定、参数校准、终端号设置等操作,单片机上面没有太多的设置接口,一般而言,只有一个串口可以使用,我尝试使用VS2019+WinForm,C#开发开发一款串口调试工具,用于配置产品的参数。
1、建立好工厂后,布局,给控件命名
uart_001.png
2、编写代码
2.1 实现端口号扫描

        private void ReflashPortToComboBox(SerialPort serialPort, ComboBox comboBox)
        {
            if (!serialPort.IsOpen)
            {//串口处于关闭状态
                comboBox.Items.Clear();
                string[] str = SerialPort.GetPortNames();
                if (str == null)
                {
                    MessageBox.Show("本机没有串口!", "Error");
                    return;
                }
                //添加串口
                foreach (string s in str)
                {
                    comboBox.Items.Add(s);
                    Console.WriteLine(s);
                }
            }
            else
            {
                MessageBox.Show("串口处于打开状态下,不能刷新串口列表", "Error");
            }
        }

2.2 打开串口按钮代码

        private void btn_open_com_Click(object sender, EventArgs e)
        {
            Int32 ibaudrate = Convert.ToInt32(cb_select_baudrate.SelectedItem.ToString());
            serialPort1.PortName = cb_select_com.SelectedItem.ToString();
            serialPort1.BaudRate = ibaudrate;
            serialPort1.Parity = (System.IO.Ports.Parity)Enum.Parse(typeof(System.IO.Ports.Parity), cb_select_check_bit.Text);
            serialPort1.StopBits = (System.IO.Ports.StopBits)Enum.Parse(typeof(System.IO.Ports.StopBits), cb_select_stop_bit.Text);
            serialPort1.DataBits = Convert.ToInt16(cb_select_data_bits.Text);

            //添加串口事件处理
            serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(ReceiveData);


            try
            {
                serialPort1.Open();
                btn_open_com.Enabled = false;
                btn_close_com.Enabled = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show("串口打开失败"+ex, "Error");
            }


        }

2.3 串口接收事件代码

//串口接收事件
        private void ReceiveData(object sender, SerialDataReceivedEventArgs e)
        {
            string content = serialPort1.ReadExisting();        //从串口中读取输入流,返回string
            
            ShowData(content);
        }
        private void ShowData(string text)
        {
            string receiveText = text;
            
            //更新接收数据计数
            recv_cntr += (UInt32)receiveText.Length;
            lab_recv_cntr.Text = recv_cntr.ToString();

            textBox_debug.AppendText("接收到了"+ receiveText.Length.ToString()+ "个数据: "+ text+"\r\n");

            if (rbtn_recv_hex.Checked)
            {//按HEX模式 展示接收到的内容 
                byte[] recData = System.Text.Encoding.Default.GetBytes(receiveText);// 将接受到的字符串据转化成数组;  

                foreach (byte str in recData)
                {
                    textBox_recv.AppendText(string.Format("{0:X2} ", str));
                }
            }
            else
            {//按ASCII模式 展示接收到的内容
                
                textBox_recv.AppendText(text);                   //将收到的字符串追加展示出来
            }

        }

2.4 发送按钮代码

        private void btn_send_Click(object sender, EventArgs e)
        {
            //串口打开的情况下,才能进行下一步操作
            if (!serialPort1.IsOpen) return;
            
            //发送内容不能为空 
            if ("" == textBox_send.Text) return;

            string sendData = textBox_send.Text;    //复制发送数据

            if (true == rbtn_send_ascii.Checked)
            {//字符模式
                try
                {
                    serialPort1.Write( sendData );
                    //更新发送数据计数
                    send_cntr += (UInt32)sendData.Length;
                    lab_send_cntr.Text = send_cntr.ToString();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "串口数据发送错误");
                    serialPort1.Close();
                    btn_open_com.Enabled = true;
                    btn_close_com.Enabled = false;
                }

            }
            else
            {//HEX模式 
                try
                {
                    sendData.Replace("0x", "");   //去掉0x
                    sendData.Replace("0X", "");   //去掉0X

                    string[] strArray = sendData.Split(new char[] { ',', ',', '\r', '\n', ' ', '\t' });
                    byte[] sendBuffer = new byte[strArray.Length];  //发送数据缓冲区
                    int decNum = 0,i = 0;
                    foreach (string str in strArray)
                    {
                        try
                        {
                            decNum = Convert.ToInt16(str, 16);
                            sendBuffer[i] = Convert.ToByte(decNum);
                            i++;
                        }
                        catch
                        {
                            //MessageBox.Show("字节越界,请逐个字节输入!", "Error");                          
                        }
                    }

                    serialPort1.Write(sendBuffer, 0, sendBuffer.Length);

                    //更新发送数据计数
                    send_cntr += (UInt32)sendBuffer.Length;
                    lab_send_cntr.Text = send_cntr.ToString();
                   
                }
                catch 
                {
                    MessageBox.Show("当前为16进制发送模式,请输入16进制数据");
                }
            }
   
        }

#67 Re: 全志 SOC » SWMS4S LCD RGB565驱动 » 2022-11-04 11:07:45

分类搞错了,要放到华芯微特区。

#69 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 【开源】串口/蓝牙/网络多合一调试助手,支持绘图,可在Android, Windows, Linux上运行 » 2022-11-03 09:00:57

wh201906 说:

你需要先下载qcustomplot.cpp,然后放到src文件夹下,这样就能编译了
项目的README里面有介绍如何编译,可以照着做

好的好的,非常感谢wh201906。
还有个问题想要请教一下,我使用您推荐使用的软件方案。
然后我把CH340的TX接到RX来测试软件发现了通讯bug,
(比方说我想发送A1,传过去就变成了01,发B1,传过去就变成了11),
请问您知道是什么原因导致的吗?

#71 Re: 司徒开源 » 开源精神值得敬佩,但是你司徒公开po 解FC3000的加密芯片就是可耻,做技术要有底线 » 2022-10-28 20:20:10

benlypan 说:

拿卖刀来举例子是偷换概念,客户买刀主要的用途是正经的,客户买你的方案主要的用途正经不正经,心理难道没数吗?

上一次看菜刀理论还是某播放器案。。。

#72 Re: 司徒开源 » 开源精神值得敬佩,但是你司徒公开po 解FC3000的加密芯片就是可耻,做技术要有底线 » 2022-10-26 10:56:55

这件事情其实可以找晕哥、或者私聊司徒沟通解决的,非要用撕的吗?
我的内心也是复杂的,不知道怎么说,之前还一直称呼  大佬 大佬 请教问题,现在。。。:
001.png
002_20221026-1054.png
003.png
004.png

#73 Re: 全志 SOC » 有偿求助(1000元)F1C100S使用USB摄像头 » 2022-10-15 17:19:25

yobbo 说:

和楼上说的一样,目前好像还没有人裸机实现USB-HOST,如果改用其他摄像头可以搜论坛帖子或者直接找Taobao上的大神定制,就是那位f1c100裸机开发keil项目卖1499的。

1499也没有实现裸机USB HOST,可以考虑TVBS+DVP,可以挂接2个。

#74 Re: 全志 SOC » f1c00s下载裸机程序后上电直接进入fel模式 » 2022-09-28 21:32:51

hhy 说:

f1c00s下载裸机程序后上电直接进入fel模式,也试过论坛大佬下载msvcr120d.dll放到Tools里面,上电后还是直接进入fel。 neutral

检查一下Flash是不是虚焊了,或者是不是坏了,这个工具只要是识别了fel USB设备,是可以对空烧写的。

#75 Re: 全志 SOC » F1C100s的CSI摄像头接口好裸奔么? » 2022-09-14 16:04:44

mind 说:

裸奔 DVP CSI的,有没有调通的,linux主线的启动时间剪裁后还是太长,客户不接受

商用推荐可以看看这个小淘气科技掌机

#76 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2022-09-14 15:57:37

47272078 说:

请教大神一个问题,开发环境是不是可以用树莓派的ubuntu下进行编译?

按理说是可以的,但是你要找到合适的编译工具链。。。

#77 Re: 全志 SOC » F1C200s+lvgl+freetype字体显示 » 2022-09-14 15:55:39

达子666 说:
哇酷小二 说:

buildroot 的 make menuconfig 直接勾选 freetype 呢?

这个没有,也不懂再哪里勾,buildroot有这个选项嘛

搜索一下啊,menuconfig界面可以搜索,我记得好像是按/ 搜索

#78 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2022-09-08 13:28:03

zhishang 说:

就是编译uboot的时候一直报make: *** No targets specified and no makefile found.  Stop.

我比较长时间没有关注了,你可以尝试使用我搭建好的环境,里面包含了本贴的所以内容。
配置好的VM虚拟机Ubuntu系统 链接:https://pan.baidu.com/s/17vk0_QWRNRuxwi5EZ_P-Xg 提取码:54pb

#79 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 有偿找人教我v3s 和 f1c200s 的液晶屏 及 VGA输出。 » 2022-09-05 08:39:00

lottefang 说:

情况是这样的,我在研究上述两款芯片的液晶屏和VGA输出(GM7123C)。希望有玩过这块的同好能教会我。我有偿支付学费。QQ 447652622 请加我联系。

推荐一下,淘宝上买有商用开发资料,
V3s和f1c的都有,(2款都买,建议问问有没有优惠)
综合起来你的个人精力,其实不算贵。

小淘气科技店铺

#82 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 众人拾柴-魔改SPI为一主多从高速总线【迪卡总线】 » 2022-07-20 08:26:23

迪卡 说:

https://whycan.com/files/members/1228/bf17a44ca6a9711dd2e93423cb844b6.png
这个电路是我比较倾向的。
在上电时,MUX都会打到终端电阻位置,
这样只有离CPU单元最近的模块能被访问到,就可以依次进行地址赋值。

我感觉原理是没有问题了,但往往这种自定义的设计,会因为开发时间久,测试不方便,成本不够低,不好落地。

#83 Re: 全志 SOC » V3s这么强显示能力, 不搞个示波器可惜了,接什么ADC好呢? » 2022-07-17 17:30:29

echo 说:

GD32F450用GPIO+DMA可以实现125Mx16的读取速度,也就是250MBytes/s的速度,达到PCIe 1.0的水平。接MXT2088刚刚好。
目前也有F1C100s+FPGA+MTX2088方案的示波器,不知道它用的什么高速接口。

用的是摄像头CSI接口

#84 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 众人拾柴-魔改SPI为一主多从高速总线【迪卡总线】 » 2022-07-13 18:14:03

@迪卡
嗯嗯,我上面是这样接的
(1)
单片机提供:
MOSI
MISO
SCLK
Ctrl
(2)板子165接法
MISO
SCLK
Ctrl
(3)板子595接法
MOSI
SCLK
Ctrl


1M和2M偶尔会出错,速度上到4MHz就基本上不行了

最终定在200K左右,还算比较稳定(我595是点灯的,偶尔还是会乱闪,一瞬间的事情,被下一帧刷掉就好了)

#85 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 众人拾柴-魔改SPI为一主多从高速总线【迪卡总线】 » 2022-07-13 09:13:53

@阿黄
我之前使用485芯片来延长SPI总线,挂接HC595/HC165,线越长,相位偏移,走形便越厉害。
如果器件传输延迟低,SPI CLK不要太高,感觉没问题。

#87 Re: 上海航芯 » 收到晕哥发来的ACM32F403RET7,感谢晕哥! » 2022-06-22 11:12:52

九重天 说:

请问楼主,航芯的DAP驱动在哪里下载呢?

我原本就装好了DAP-Link的驱动,使用的是WCH-Link(实际上也是DAP-Link)。
按理说,win10应该是免驱的。
说实话,我也不知道我怎么装上的,要不你参考一下这个链接?
参考以下连接:
(1)从MounRiver Studio中提取的WchLink驱动

#88 Re: 上海航芯 » 收到晕哥发来的ACM32F403RET7,感谢晕哥! » 2022-06-22 09:22:19

2、安装型号支持包,然后找到一个UART例程,打开!
(1)安装支持包,直接打开文件,下一步...即可
(2)找一个GPIO工程,因为我们看到更新时间,
Core_ModulesDemo_Rev2.0.1| rar | 2022-03-10
这个较新,从里面找GPIO相关工程。
ACM32-GPIO.png
(3)配置DAP-Link,编译工程,烧写
ACM-Pro-setting.png
ACM-Pro-setting2.png
ACM-Pro-setting3.png
ACM-Pro-setting4.png
ACM-Pro-setting5.png
ACM-Pro-setting6.png
ACM-Pro-setting7.png

#89 Re: 上海航芯 » 收到晕哥发来的ACM32F403RET7,感谢晕哥! » 2022-06-22 09:04:22

我的电脑环境情况:
(1)MDK529+coretex-M
(2)有WCH-Link驱动(也是一款DAP-Link)
1、获取开发相关资源
(1)型号支持包:   
型号支持包
(2)外设基本例程:
Core_ModulesDemo_Rev2.0.1
Nucleo_ModulesDemo_Rev1.0.8
(3)开发板PDF原理图
ACM32F403RET7_CORE_V1.2
如果链接失效,直接访问官网下载即可:
ACM官方网站

#90 上海航芯 » 收到晕哥发来的ACM32F403RET7,感谢晕哥! » 2022-06-22 08:51:29

LinjieGuo
回复: 9

本来想使用ACM32F030xxxx/ACM32F070xxxx,然而晕哥手上只有ACM32F403RET7开发板,这款开发板所使用的主控芯片是ACM32F403RET7,资源非常丰富!不过此处就不细说了,详细内容参考帖子:
上海航芯 ACM32F403RET7 开发板, 促销价 18.8元
开发板贴图ACM1.jpg
从图上可以看到,资源不多,但是作为一个最小系统板,板载了DAP-Link,已经是非常友好。

#91 Re: 上海航芯 » 上海航芯技术文章合集,开源送三片芯片(包邮) » 2022-06-21 09:37:52

就这样吧 说:

资料全不

资料非常丰富,直接在官网就可以下载

#92 Re: 华芯微特 » 基于MDK-ARM的华芯微特SWM180+RTOS的JLINK开发环境建立--缥缈九哥 » 2022-06-18 09:36:26

nufing 说:

不知道能不能像 STM32、GD32 那样,通过串口进行烧录程序 ?

可以的,有个专用的ISP 串口/Jlink烧写工具。

#94 Re: 全志 SOC » 一条龙分享基于tiny200 r3(f1c200s)板子的bootloader固件+多进程多线程OS镜像+APP开发模板,欢迎下载玩它 » 2022-04-21 14:48:18

@三哥
三哥才是真正的大佬,闲暇下来一定玩它,玩它,玩它,谢谢三哥分享。 big_smile

#95 Re: 全志 SOC » 一条龙分享基于tiny200 r3(f1c200s)板子的bootloader固件+多进程多线程OS镜像+APP开发模板,欢迎下载玩它 » 2022-04-21 13:39:25

支持勇于创新的思维,贴主的设想不错。
但是我下载文件之后,发现:
arm9os只有一个bin文件,
无法得知里面是什么样的情况。
有以下几个疑问,请问:
(1)app加载之后,都拥有自己的独立内存空间吗?
(2)app访问资源,如何解决资源互斥问题呢?

#97 Re: 全志 SOC » T507 能否设置PWM开启每次只输出一个方波 » 2022-04-12 08:30:33

加一片4051芯片用于SPI片选就可以了。
比方说我这个串口发送,因为我有2个串口音频芯片,并且用不上串口接收功能。
CD4051.png
通过UART3_RX引脚进行片选,可以控UART3_TX接通AUART_TX0或者AUART_TX1。
同理,你也可以让SPI MOSI进行多路选一避免干扰,加一个引脚进行片选就好了。

#98 Re: 全志 SOC » [XR806]XR806 FreeRTOS_BSP编译 » 2022-04-10 23:14:51

换了个软件,打印显示看起来正常了
123.png

#99 Re: 全志 SOC » [XR806]XR806 FreeRTOS_BSP编译 » 2022-04-10 22:30:27

6、烧写程序到开发板
参考链接:跳转到全志在线帖子
(1)生成烧写镜像
上述make只是生成了bin文件,我们需要进一步生成烧写镜像,才可以顺利下载。
make image

Flash Layout:
sec bin 0 boot_40M.bin      :   flash_offs: 0x00000000(   0K)   data_size: 0x00002F28(  12K)
sec bin 1 app.bin           :   flash_offs: 0x00004000(  16K)   data_size: 0x00004920(  19K)
sec bin 2 app_xip.bin       :   flash_offs: 0x00029800( 166K)   data_size: 0x000058E0(  23K)

generate image: xr_system.img
cp -t ../../../../out/ ../image/"xr806"/*.bin ../image/"xr806"/xr_system.img *.map
book@book-desktop:~/work/xr806/xr806_sdk_v1.2.1/project/demo/hello_demo/gcc$ 

(2)获取工具
工具存放在bsp包./tools目录里,程序文件为phoenixMC.exe。
(3)烧写镜像
如下图所示
2022-04-10%20222554.png
(4)查看打印
如下图所示
2022-04-10%20222506.png

看起来,helloworld字样已经出来了,说明编译环境基本上已经搭建好了。

#100 全志 SOC » [XR806]XR806 FreeRTOS_BSP编译 » 2022-04-10 18:31:23

LinjieGuo
回复: 3

1、构建工作文件夹
(1)cd ~
(2)mkdir work
(3)cd work
(4)mkdir xr806
(5)cd xr806
2、获取资源
(1)wget http://www.armsoc.cn/whycan/xr806/xr806_sdk_v1.2.1.tgz
(2)wget http://www.armsoc.cn/whycan/xr806/gcc-arm-none-eabi-8-2019-q3-update-linux.tar.bz2

如果获取失败,直接whycan下载(可能需要积分)
-->freeRTOS bsp
    xr806_sdk_v1.2.1.tgz
-->gcc工具链   
    gcc-arm-none-eabi-8-2019-q3-update-linux.tar.bz2
3、编译一个例程
(1)解压bsp
tar -xzvf xr806_sdk_v1.2.1.tgz
(2)选择一个例程进行编译
cd ~/work/xr806/xr806_sdk_v1.2.1/project/demo
ls
可以看到现在有一下几个例程

book@book-desktop:~/work/xr806/xr806_sdk_v1.2.1/project/demo$ ll
总用量 32
drwxrwxr-x  8 book book 4096 4月   2 16:50 ./
drwxrwxr-x 10 book book 4096 4月   2 16:50 ../
drwxrwxr-x  3 book book 4096 4月   2 17:26 at_demo/
drwxrwxr-x  4 book book 4096 4月   2 17:23 audio_demo/
drwxrwxr-x  8 book book 4096 4月   2 16:50 bluetooth/
drwxrwxr-x  3 book book 4096 4月   2 17:22 hello_demo/
drwxrwxr-x  4 book book 4096 4月   2 16:50 wlan_ble_demo/
drwxrwxr-x  3 book book 4096 4月   2 16:50 wlan_demo/

(3)选择hello_demo
    cd hello_demo
(4)进入gcc目录,进行编译
cd gcc
make
    结果,编译出错了,原因是我们没有安装交叉编译工具链。

...
/bin/sh: 1: /home/book/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/arm-none-eabi-gcc: not found
../../../../project/project.mk:437: recipe for target 'hello_demo.elf' failed
make[1]: *** [hello_demo.elf] Error 127
make[1]: 离开目录“/home/book/work/xr806/xr806_sdk_v1.2.1/project/demo/hello_demo/gcc”
../../../../project/project.mk:426: recipe for target '__all' failed
make: *** [__all] Error 2

4、安装交叉编译工具链
(1)解压工具链
cd ~/work/xr806/
tar -xvf gcc-arm-none-eabi-8-2019-q3-update-linux.tar.bz2
(2)复制到项目例程指定的目录
根据上面的错误信息,我们可以知道交叉编译工具链,应该是存放在这个位置:
/home/book/tools/gcc-arm-none-eabi-8-2019-q3-update/

cd ~
mkdir tools
cd ~/work/xr806/
cp -r gcc-arm-none-eabi-8-2019-q3-update ~/tools/

5、回到例程目录,重新编译
cd ~/work/xr806/xr806_sdk_v1.2.1/project/demo/hello_demo/gcc/
make
编译结果,看起来像是成功了

~/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/arm-none-eabi-objcopy -O binary -R .xip   hello_demo.elf hello_demo.bin
~/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/arm-none-eabi-objcopy -O binary -j .xip hello_demo.elf hello_demo_xip.bin
~/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/arm-none-eabi-size hello_demo.elf
   text    data     bss     dec     hex filename
  39768    1576    2248   43592    aa48 hello_demo.elf
make[1]: 离开目录“/home/book/work/xr806/xr806_sdk_v1.2.1/project/demo/hello_demo/gcc”
book@book-desktop:~/work/xr806/xr806_sdk_v1.2.1/project/demo/hello_demo/gcc$ 

我们得到了两个bin文件,一个elf文件
hello_demo.bin
hello_demo_xip.bin
hello_demo.elf

#101 Re: ST/STM8/STM8S/STM8L » 谁能拒绝在自己的项目中添加终端工具用于调试呢? » 2022-04-03 19:36:16

@llinjupt
哈哈,你这个功能我好像做过,但是不太完善,以前调试USB手柄的时候写的,你可以看看哈。
帖子跳转  ITX-190——一个性能不强却支持强大的开发板

#102 Re: 全志 SOC » F1C200S牺牲颜色数量,增加一个TWI1出来? » 2022-04-02 14:45:38

如果非要丢,丢低位,保高位。
如果重新设计,使用i80屏幕好像可以腾出一些引脚。

#103 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2022-03-15 09:05:03

就是小白了 说:

@LinjieGuo
这个文件是要烧写到哪个地址呢,是地址0吗,我把下面提供的虚拟机里的bin文件烧录到0地址结果出现和你第一次报错一样的错误,但是suniv.h已经是删过冒号的了。
https://whycan.com/files/members/6074/微信截图_20220310161208.png

兄弟你的Flash是什么型号呢?

#104 Re: 全志 SOC » 网站需要改革,放开文件下载权限(不需要与积分挂钩) » 2022-03-12 14:39:55

@gdzh26
限制次数可能是为了防止别人爬网站资源,
或者防止限制代下资源的情况。
另外,好像CSDN也限制每天下载次数。

并没有说whycan好,CSDN不好,
CSDN我没有文档输出,
所以,会员也开了好多年了,
我认为网站的规则如此,
不喜欢可以右上角,
强扭的瓜不甜!

csdn_vip.png
csdn_dw_20220312-1442.png
相关帖子:
限制下载次数或限制下载不知是何用意?

#105 Re: 全志 SOC » F1C100S和F1C200S公版 » 2022-03-12 13:11:13

1ohm 说:

你好朋友,我是新来的。

这么多很棒的板子。

我想自己画。 谁能给我一个购买 Allwinner F1C200s 和 F1C100s 的链接?

Hello friends, I am new here.

So many great boards.

I want to draw my own. Can anyone send me a link to buy Allwinner F1C200s and F1C100s?

直接购买晕哥的芯片就可以了。
F1C100s/F1C200s

#106 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » [记录]使用SPI驱动WS2811 » 2022-03-12 12:24:28

大哥,ws2812你看看这个color表行不行。

SPI CLK 20MHz

T1H = T0L = 16个SPI数据     = 0.8us
T0H = T1L =   8个SPI数据位  = 0.4us


color_map_ws2812.c

#107 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » [记录]使用SPI驱动WS2811 » 2022-03-12 11:22:15

xboot 说:

综合判定下来,应该选择8bit模式,比较合理,资源也相对少一点,8bit的话,基本就可以不要表格了,直接运算就行了。

按我上面所描述的8bit处理,那么,描述一个RGB,使用24字节。
如果存在表格,按字取数,取6次就可以了。
表格不需要运行时参与,存在代码区。
我随便撸几行代码,搞一个表格出来。哈哈。

#108 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » [记录]使用SPI驱动WS2811 » 2022-03-12 10:21:18

我从别的网站帖子上面看到了如下信息,我根据这些信息列出理论依据。
WS2812原理与实现
裁剪帖子的部分信息,可以看到,对于WS2812,其时序要求如下:
ws2812_clk.png
(1)T0H = T1L = 0.4us    (±150ns,建立color表时,尽量不考虑误差范围,可作为芯片SPI时钟误差)
(2)T1H = T0L = 0.85us  (±150ns,建立color表时,尽量不考虑误差范围,可作为芯片SPI时钟误差)

(3)与1楼的理论同理,得:
令SPI的一个时钟周期t = 0.05us,即SPI 的f = 20MHz。

T1H = T0L = 17个SPI数据
T0H = T1L =   8个SPI数据位

但是,芯片支持误差容忍(0.15us/150ns),
所以,可以尝试:

T1H = T0L = 16个SPI数据(少1个时钟节拍,0.05us/50ns)
T0H = T1L =   8个SPI数据位

#109 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » [记录]使用SPI驱动WS2811 » 2022-03-12 10:03:11

这是我测试到的波形,看起来数据宽度并没有绝对0.5us/2.0us,
是由于我的晶振使用内部32MHz晶振,时钟不准,但是点亮WS2811没有什么问题。
我现在看看WS2812,搞一个表出来。

(1)whycan下载
(2)站外免积分下载

#110 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » [记录]使用SPI驱动WS2811 » 2022-03-12 09:52:01

xboot 说:

使用5bit,测试下来,发现可靠性偏低,感觉有必要搞成8bit,或者16bit,反正SPI时钟速度不是瓶颈。还有感觉想要搞通用时序,估计可靠性都好不到哪里去,最优的方式,还是用可配置的8bit或者16bit方案。

2812没有测试过,
值得一提的是,我这里使用WS2811芯片,
测试情况是,没有问题。
随时热拔插,瞬间就点亮并且呈现目标颜色。不存在乱闪的问题。
我现在看看搞一个8bit/16bit的表格出来。

#111 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » [记录]使用SPI驱动WS2811 » 2022-03-10 09:47:48

@xboot
分析的没错。
还有个地方需要注意。
那就是复位时序的时间长短,
有很大区别。
WS2812B需要280us以上
WS2811 反而只需50us以上。
(可能是WS2812B的传输数据速度快,为了确保稳定性,把复位时长提高?)

#112 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » [记录]使用SPI驱动WS2811 » 2022-03-10 09:25:55

对于上面我使用的WS2811的情况,2M SPI CLK,
情况如下:
(1)T0H = T1L = 0.5us = 500ns
(2)T1H = T0L =2.0us = 4 * T0H = 4 * T1L
看了你的WS2812手册里面给了个范围,
我们以WS2812B为准,将SPI CLK提升到4M。
那么,周期变成一半。
(1)T0H = T1L = 0.25us = 250ns
(2)T1H = T0L =1.0us = 1000ns =4 * T0H = 4 * T1L

观察了一下,完全符合WS2812B的时序要求。
(WS2812的数据传输速度是800KHz,WS2811(400KHz)的2倍)
所以,你至少使用4M的SPI CLK,才能驱动WS2812。

#113 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » [记录]使用SPI驱动WS2811 » 2022-03-10 09:02:39

xboot 说:

另外,可以把dma怼上去。
我是这样搞:

#define CHIP_NUM  100
typedef strut{
  uint8_t rst[200];    //0.5us *200 = 100us 
  uint8_t frame[ CHIP_NUM ][3][5];
  //3 代表颜色分量,R / G / B
  //5 颜色数据,5字节SPI数据描述一个分量的颜色深浅
}ws28xx_t,ws28xx_pt;

然后定时使用DMA将帧内存通过SPI发送出去就可以了。

#114 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » [记录]使用SPI驱动WS2811 » 2022-03-10 08:39:29

xboot 说:

哈哈,大哥果然神速。
我昨天调试了半天ws2811。
怎么搞都不行,后面才发现。12V没接......

#115 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » [记录]使用SPI驱动WS2811 » 2022-03-07 14:13:06

时隔多日,回来续帖。
    前面知道了原理,接下来,我们得生成一个color表。
    color表的结构应该是这样:
   

uint8_t ws2811_color[256][5]={......} 

    其中,256对应一中颜色分量的颜色深浅,因为RGB各占8bit。
    以下是我针对1楼的时序,生成的color表:
    color_map_ws2811.c
    color_map_ws2811.txt
    下一步是借助color_map_ws2811.c文件,编写CH579M的驱动代码!

#116 Re: 全志 SOC » v3s 的800x480屏幕的通信协议是什么? » 2022-02-28 18:28:52

inia 说:

请问 v3s 的 800x480屏幕的通信协议是什么?
源代码去哪里找?

一般我们都是接RGB666/rgb565屏幕,
源代码论坛里很多,详细请使用右上角的搜索,看你会不会用了。
基本上搭建环境的帖子,RGB TFT都是调通了的

#118 Re: 全志 SOC » 那位高人给讲讲f1c100s的内存布局 » 2022-02-21 19:56:46

bigbat 说:

想了解一下f1c100s的内存布局,sunxi-fei工具,有少些地址是0的、有0x80000000的,这是地址都是问什么呀

手册里面有存储器映射地址描述的。可以从f1c200s的手册里面看看。

#119 Re: 全志 SOC » 基于RTThread的F1C100s开发(带boot启动+硬件多图层+硬件游标+LVGL+SDIO) » 2022-02-10 14:29:32

shenbk 说:

使用tiny-R2,默认串口为UART1,bootloader的串口非常容易改,反而RTT的finsh默认串口没修改成功,请问这个在哪里修改啊,我改了几个地方都没效果。

参考官方文档:FinSH 移植

FinSH 的输出:
FinSH 的输出依赖于系统的输出,在 RT-Thread 中依赖 rt_kprintf() 输出。在启动函数 rt_hw_board_init() 中, rt_console_set_device(const char* name) 函数设置了 FinSH 的打印输出设备。

对应串口引脚配置,应该在drv_uart.c里面,

有这样一个结构体,

static rt_err_t uart_configure(struct rt_serial_device *serial, struct serial_configure *cfg);
static rt_err_t uart_control(struct rt_serial_device *serial, int cmd, void *arg);
static int      uart_putc(struct rt_serial_device *serial, char c);
static int      uart_getc(struct rt_serial_device *serial);
static rt_size_t uart_dma_transmit(struct rt_serial_device *serial, rt_uint8_t *buf, rt_size_t size, int direction);

void     uart_irq_handler(int irqno, void *param);

const struct rt_uart_ops _uart_ops =
{
    uart_configure,
    uart_control,
    uart_putc,
    uart_getc,
    uart_dma_transmit
};

可以看出,就是以下这个函数负责配置串口引脚的。
static rt_err_t uart_configure(struct rt_serial_device *serial, struct serial_configure *cfg);

#120 Re: 全志 SOC » 开源 全志f1c100s(200s)所有IO都引出 » 2022-02-06 08:46:32

mapleft 说:

F1C 中间那个大洞是用老散热的么?, 我看很多人画的PCB中间的洞都是这么大的

这个洞是为了方便焊接的时候……方便灌锡……

#121 Re: Cortex M0/M3/M4/M7 » CH579M串口接收问题 » 2022-01-25 10:42:04

stephone 说:

无语了,刚发贴就发现原因了,自己不知道怎么改成这样了 sad sad sad
#define    UART1_RecvByte()        ( UART_RBR )

哈哈,CH579M的FIFO功能挺好的。
接收超时+FIFO溢出,
用起来可以减少CPU开销。

#122 DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » [记录]使用SPI驱动WS2811 » 2022-01-22 16:28:15

LinjieGuo
回复: 21

市面上常见的2款串行可编程控制LED方案,分别是WS2811和WS2812。
    其中,

    [1]WS2811是芯片,常规供电为12V,按理说,驱动距离会远一些。

    [2]WS2812是灯珠,把可编程芯片内嵌在灯珠里面,常规供电5V,按理说,驱动距离相对短。

   

    相信很多朋友都在51单片机上面驱动过这个芯片,使用方法是:IO模拟单总线时序,达到传输RGB数据的效果。

    因为WS2811/2812驱动时序,是us级的,IO模拟的方法,过度依赖CPU,这种做法实在不合理。

    正确做法应该是借助片上的通讯外设,如UART/SPI等,兼容WS2811/2812的时序,腾出CPU资源,并且提高灯带驱动的稳定性。



    本文章阐述,使用SPI驱动WS2811的思路。

    先看手册:   

    ![image-20220122160847782](image-20220122160847782.png)
        image-20220122160847782.png

    ![image-20220122160959434](image-20220122160959434.png)
        image-20220122160959434.png

    从WS2811的手册,可以得知( 高速模式下 ):

    [1]这款芯片支持2种驱动速度:分别为高速模式和低速模式。

    [2]对单总线送'0'码和'1'码,需要使用T0H / T1H / T0L /T1L搭配。

    [3]搭配出来的'0'码和'1'码所占用时长皆为 2.5us。

    [4]T0H = T1L = 0.5us

    [5]T1H = T0L =2.0us = 4 * T0H = 4 * T1L

   

    因此,SPI总线的驱动时钟,一个时钟脉冲的周期不能大于 T0H / T1L ,也就是不能大于0.5us。

    我们试着就让SPI总线一个时钟脉冲的周期就等于0.5us,Tspiclk = 0.5us。

    那么,频率Fspiclk = 1 / Tspiclk  = 2MHz。

    这种情况下,如果想要送RGB888数据中的 1 位 数据 到WS2811,SPI总线需要发出5个位的数据:

○  1 : 00001 

○  0 : 11110

    如果要发1字节数据(8个位),如R = 0xF0,对应二进制为:

	1111 0000

    那么SPI应该发出这样的数据:

 	00001 00001 00001 00001 11110 11110 11110 11110

    对其进行组合,可以得到5个字节:

    0000 1000 0100 0010 0001 1111 0111 1011 1101 1110

    所以,SPI应该发送的数据为:

	0X08 		0X42		0X1F		0X7B		0XDE

    同理,对于R 、G、 B都可以这样操作。

    那么,也就是说,想要给一颗WS2811输送RGB888数据,需要发送5*3 = 15个字节

#123 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 有没有人想创业? » 2022-01-20 08:13:54

stb 说:

我想做一个带有 nas 功能的 网络盒子,其实主要就是开发一些LINUX 系统的应用,有没有人感兴趣 ?注意:创业需要用爱发电,没有工资发的哦,但是也不用掏钱:)

啊,这......

#124 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-15 13:45:22

435788A 说:

@LinjieGuo
下载了,还是出错误。
https://whycan.com/files/members/7570/rtt错误1.jpg
用惯了Keil这种界面,有错误直接跳到出错代码处
这个rtt一时难以上手

rtt的源码重新下载解压了吗?
我把我的整个rtt目录上传上来,你看看。
rt_thread_fal_elm_dfs_20220115.zip

#125 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-15 08:17:55

435788A 说:

我也来学习,初次接触RTT,文件在那里也不知道,给我来了个错误了
https://whycan.com/files/members/7570/RTT.png

哈哈,我上传一下代码啊。
你这个情况,感觉像是源码没有下载全的样子。
可以试试重新拉取系统源码,然后把bsp工程复制进去。
allwinner_tina_prj_v1_fat_elm_dfs.zip

#128 Re: 华芯微特 » 基于华芯微特SWM181CB的DS18B20温度传感器的1-wire驱动程序 » 2022-01-13 13:31:03

@缥缈九哥
九哥,还可以使用串口转单总线时序,节省CPU资源。
但是我具体不知道怎么做......(狗头保命)

#129 Re: 全志 SOC » 网站需要改革,放开文件下载权限(不需要与积分挂钩) » 2022-01-12 17:36:17

@illusion
"所谓的“积分下载有门槛”,只是一些白嫖怪的借口而已。"
非常赞同这句话。

#130 Re: 全志 SOC » 网站需要改革,放开文件下载权限(不需要与积分挂钩) » 2022-01-12 15:06:04

@luoyuan0130
同意你说的互相开源学习,
只要你开源了自己的作品/资源,
积分就来了,
那么自然就可以下载想要的资源。
(开源不等于免费,以下资料分享给你 )
[文章分享:再看中国法院是怎么对待GPL的]
QT_GPL_20220112-1509.png

#131 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-12 10:03:01

擦掉分区的数据之后,重启,果然OK了。
rtt_fal_erase_reboot.png

我们再做下一步工作:
(1)挂载了spi_nor的一部分分区到根目录,并且创建了sdcard的工作目录,
<1>读入/config/config.txt的内容
<2>根据配置参数,选择要不要挂载SD卡

#132 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-12 09:56:01

对上一个帖子的要求,我们再度优化bsp_fal_init()函数:

void bsp_fal_init(void)
{
	int fd, size;
    struct statfs elm_stat;
    struct fal_blk_device *blk_dev;
    char str[] = "enable sdcard 1 ", buf[80];

	/* fal init */
    fal_init();

	 /* create block device */
    blk_dev = (struct fal_blk_device *)fal_blk_device_create(FS_PARTITION_NAME);
    if(blk_dev == RT_NULL)
        rt_kprintf("Can't create a block device on '%s' partition.\n", FS_PARTITION_NAME);
    else
        rt_kprintf("Create a block device on the %s partition of flash successful.\n", FS_PARTITION_NAME);

	/* mount elmfat file system to FS_PARTITION_NAME */
    if(dfs_mount(FS_PARTITION_NAME, "/", "elm", 0, 0) == 0)
    {    
    	rt_kprintf("elmfat filesystem mount success.\n");
		return;
	}
	else
	{
		rt_kprintf("elmfat filesystem mount failed.\n");
		goto __do_mount_bolck_dev_fs_failed_fal_action;
		
	}

__do_mount_bolck_dev_fs_failed_fal_action:
	/* make a elmfat format filesystem */
	 if(dfs_mkfs("elm", FS_PARTITION_NAME) == 0)
	 {
		rt_kprintf("make elmfat filesystem success.\n");
		if(dfs_mount(FS_PARTITION_NAME, "/", "elm", 0, 0) == 0)
   		{    
    		rt_kprintf("elmfat filesystem mount success.\n");
			
		}
		 
	 }
	 else
	 {
	 	rt_kprintf("make elmfat filesystem faild.\n");
	 	while(1);
	 }

    /* Get elmfat file system statistics */
    if(statfs("/", &elm_stat) == 0)
        rt_kprintf("elmfat filesystem block size: %d, total blocks: %d, free blocks: %d.\n", 
                    elm_stat.f_bsize, elm_stat.f_blocks, elm_stat.f_bfree);

    if(mkdir("/user", 0x777) == 0)
        rt_kprintf("make a directory: '/user'.\n");
	
	if(mkdir("/sdcard", 0x777) == 0)
		   rt_kprintf("make a directory: '/sdcard'.\n");

	if(mkdir("/config", 0x777) == 0)
		   rt_kprintf("make a directory: '/sdcard'.\n");
	

    rt_kprintf("Write string '%s' to /config/config.txt.\n", str);

    /* Open the file in create and read-write mode, create the file if it does not exist*/
    fd = open("/config/config.txt", O_WRONLY | O_CREAT);
    if (fd >= 0)
    {
        if(write(fd, str, sizeof(str)) == sizeof(str))
            rt_kprintf("Write data done.\n");

        close(fd);   
    }
 
}

编译,修饰,烧写,启动,没啥改变

msh />
msh />
msh />
msh />
msh />ls
Directory /:
user                <DIR>                    
whycan              <DIR>                    
msh />

(使用命令行)擦掉这个这个分区的数据,再试一下:

msh />fal probe
No flash device or partition was probed.
Usage: fal probe [dev_name|part_name]   - probe flash device or partition by given name.
[I/FAL] ==================== FAL partition table ====================
[I/FAL] | name           | flash_dev |   offset   |    length  |
[I/FAL] -------------------------------------------------------------
[I/FAL] | sys_partition  | wind25qx  | 0x00000000 | 0x00100000 |
[I/FAL] | root_partition | wind25qx  | 0x00100000 | 0x00f00000 |
[I/FAL] =============================================================
msh />fal probe root_partition
Probed a flash partition | root_partition | flash_dev: wind25qx | offset: 1048576 | len: 15728640 |.
msh /               
msh />
msh />fal erase 0 4096
Erase data success. Start from 0x00000000, size is 4096.
msh />

#133 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-12 09:34:36

答案不言而喻(因为开机打印东西有点多,不贴图了)
(1)第一次开机,会因为挂载不上,而格式化FAL分区所创建的块设备,然后挂载这个块设备到dfs
(2)我们手动创建了文件夹whycan之后
(3)无论我们是重启单板,还是重新烧写一样的程序,whycan依然在。

我们再优化一下,流程应该是这样的:
(1)挂载FAL分区所创建的块设备到DFS
    如果挂载成功,则执行正常开机
    如果挂载失败,则执行初始化分区操作。
(2)初始化操作,应该包含以下:
<1>格式化FAL分区为文件系统
<2>挂载文件系统
<3>创建默认工作目录
<4>创建配置文件config到/config目录

#134 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-12 09:31:07

重启单板,咦?我们刚刚创建的whycan文件夹没了??
这一看,那一看,发现,每次开机,bsp_fal_init()函数都会做一遍格式化操作。
我们是不是可以这样:
(1)[分区创建块设备]
(2)尝试挂载块设备到文件系统
   如果成功,就不格式化了
   如果失败,则格式化完在挂载

说干就干!修改一下这个bsp_fal_init()函数:(关键代码)

__mount_fal:
	/* mount elmfat file system to FS_PARTITION_NAME */
    if(dfs_mount(FS_PARTITION_NAME, "/", "elm", 0, 0) == 0)
    {    
    	rt_kprintf("elmfat filesystem mount success.\n");
	}
	else
	{
		/* make a elmfat format filesystem */
   		 if(dfs_mkfs("elm", FS_PARTITION_NAME) == 0)
   		 {
       		 rt_kprintf("make elmfat filesystem success.\n");
			 goto __mount_fal;
   		 }
		 else
		 {
		 	rt_kprintf("make elmfat filesystem faild.\n");
		 	while(1);
		 }
	}

#135 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-12 09:19:44

开机,看一看
rtt_dfs_spi_nor.png
显然,虚拟文件系统挂载进去了。(红色字体是SD卡相关,没有插卡,所以报故障)
具体的 [分区创建块设备]  [块设备格式化为文件系统] [文件系统挂载到DFS] [创建目录] [创建文件] [写文件]
这些流程,看上面的代码,一目了然。不作过多描述。

#136 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-12 09:10:18

继续前进。
参考文章IOT-OS之RT-Thread(十一)--- FAL分区管理与easyflash变量管理
我们抄袭一下,跟他做法相仿,文件编排略有差异,只为了实现功能。
修改main.c文件,
(1)增加函数 bsp_fal_init()

#include "dfs_posix.h"

#define FS_PARTITION_NAME  "root_partition"

void bsp_fal_init(void)
{
	int fd, size;
    struct statfs elm_stat;
    struct fal_blk_device *blk_dev;
    char str[] = "elmfat mount to W25Q flash.", buf[80];

	/* fal init */
    fal_init();

	 /* create block device */
    blk_dev = (struct fal_blk_device *)fal_blk_device_create(FS_PARTITION_NAME);
    if(blk_dev == RT_NULL)
        rt_kprintf("Can't create a block device on '%s' partition.\n", FS_PARTITION_NAME);
    else
        rt_kprintf("Create a block device on the %s partition of flash successful.\n", FS_PARTITION_NAME);

	/* make a elmfat format filesystem */
    if(dfs_mkfs("elm", FS_PARTITION_NAME) == 0)
        rt_kprintf("make elmfat filesystem success.\n");

    /* mount elmfat file system to FS_PARTITION_NAME */
    if(dfs_mount(FS_PARTITION_NAME, "/", "elm", 0, 0) == 0)
        rt_kprintf("elmfat filesystem mount success.\n");
	
    /* Get elmfat file system statistics */
    if(statfs("/", &elm_stat) == 0)
        rt_kprintf("elmfat filesystem block size: %d, total blocks: %d, free blocks: %d.\n", 
                    elm_stat.f_bsize, elm_stat.f_blocks, elm_stat.f_bfree);

    if(mkdir("/user", 0x777) == 0)
        rt_kprintf("make a directory: '/user'.\n");

    rt_kprintf("Write string '%s' to /user/test.txt.\n", str);

    /* Open the file in create and read-write mode, create the file if it does not exist*/
    fd = open("/user/test.txt", O_WRONLY | O_CREAT);
    if (fd >= 0)
    {
        if(write(fd, str, sizeof(str)) == sizeof(str))
            rt_kprintf("Write data done.\n");

        close(fd);   
    }

    /* Open file in read-only mode */
    fd = open("/user/test.txt", O_RDONLY);
    if (fd >= 0)
    {
        size = read(fd, buf, sizeof(buf));

        close(fd);

        if(size == sizeof(str))
            rt_kprintf("Read data from file test.txt(size: %d): %s \n", size, buf);
    }
}

(2)修改main函数,显示调用bsp_fal_init()

int main(int argc, char **argv)
{
	
	rt_kprintf("Start...\n");
	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());

	bsp_fal_init();
	
	MainThreadCreat();
    return 0;
}

(3)修改start_task,关掉TF/SD卡挂载相关。

void start_thread(void *parameter)
{
	int ret = 0;
#if 0
	
	if( 0 == dfs_mount("sd0","/","elm", 0,0) )
	{
		printf("sd0 mount to / \n");
	}
	else
	{
		printf("sd0 mount to / faild \n");
	}
#endif		
	
	while(1)
	{
		rt_thread_delay(1);
	}	
}

(4)编译,修饰,烧写。

#137 Re: 全志 SOC » f1c100学习 » 2022-01-11 16:05:54

work11 说:

想学习一个f1c100单片机,论坛上面知识都是散乱的,没有成系列的教程,成系列的都收费,我也是服了
全脂了。

哈哈哈,混了这么多年,我倒认为,
花能够承受的代价,
如果能够换来想要的内容,
这是效率最高的。

#138 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-09 15:34:58

按照官方的流程走,看起来都成功了。
    但是!!!这都不是我们想要的。
    我们捋一下,我们的目的是:
FAL将Flash进行分区,然后,将这个分区注册成块设备,块设备就可以注册进DFS,被DFS虚拟文件系统管理了

#139 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-09 15:33:26

按照官方知道文档,测试一下--> 软件包-FAL
(1)查看有那些分区

msh />fal probe
No flash device or partition was probed.
Usage: fal probe [dev_name|part_name]   - probe flash device or partition by given name.
[I/FAL] ==================== FAL partition table ====================
[I/FAL] | name           | flash_dev |   offset   |    length  |
[I/FAL] -------------------------------------------------------------
[I/FAL] | sys_partition  | wind25qx  | 0x00000000 | 0x00100000 |
[I/FAL] | root_partition | wind25qx  | 0x00100000 | 0x00f00000 |
[I/FAL] =============================================================

(2)指定待操作的 Flash 设备或 Flash 分区
不能选择sys_partition  这个分区,因为这个分区存储了我们的系统程序,擦掉系统就没了。
所以我们选择 root_partition分区:

msh />fal probe root_partition
Probed a flash partition | root_partition | flash_dev: wind25qx | offset: 1048576 | len: 15728640 |.

(3)擦除数据

msh />fal erase 0 4096
Erase data success. Start from 0x00000000, size is 4096.

(4)写入数据

msh />fal write 8 1 2 3 4 5
Write data success. Start from 0x00000008, size is 5.
Write data: 1 2 3 4 5 .

(5)读取数据

msh />fal read 0 64
Read data success. Start from 0x00000000, size is 64. The data is:
Offset (h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
[00000000] FF FF FF FF FF FF FF FF 01 02 03 04 05 FF FF FF ................
[00000010] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
[00000020] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
[00000030] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................

(6)性能测试

msh />fal bench 4096 yes
Erasing 15728640 bytes data, waiting...
Erase benchmark success, total time: 36.614S.
Writing 15728640 bytes data, waiting...
Write benchmark success, total time: 61.441S.
Reading 15728640 bytes data, waiting...
Read benchmark success, total time: 4.267S.

#140 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-09 15:16:39

果然,这条红色的错误提示,没有了。
initialize fal_init[E/SFUD] ERROR: Flash device spi00 not found!

rtt_fal_boot_not_find_no_red_error.png

#141 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-09 15:04:20

也就是说,FAL根本就没有初始化。
        我们让他像elm组件一样,自动初始化。
在fal.c文件底部,加入一个宏修饰

INIT_PREV_EXPORT(fal_init);

        编译,修饰,下载,启动查看串口打印:
rtt_fal_boot_not_find_spi00.png

        一眼看过去,肯定不对劲,关键的红字信息。
initialize fal_init[E/SFUD] ERROR: Flash device spi00 not found!
       在初始化fal的时候,系统跟我们说,找不到spi00。
       咦?我们前面定义的宏,明明是:

#define NOR_FLASH_DEV_NAME             "wind25qx"

       他跟我们说,找不到spi00,那肯定有问题。
       我折腾了很久,发现了问题在menuconfig环节,我手欠的把这一项修改了。
rtt_fal_boot_not_find_spi00_menuconfig.png
       修改这一项为 wind25qx,保存,退出menuconfig,然后编译,修饰,烧写。
rtt_fal_boot_not_find_spi00_menuconfig_wind25qx.png

#142 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-09 15:01:46

scons,编译,编译成功。
跑起来,好像没有看到我们想要看的东西。
rtt_fal_boot.png
        哪里异常呢?
(1)打印出的initialize列表,没有找到fal相关的关键词
(2)输入fal命令,提示,还没有初始化

#143 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-09 14:53:02

为什么fal_cfg.h的这个宏是这样定义呢?

#define NOR_FLASH_DEV_NAME             "wind25qx"

因为,SPI块设备注册进来的名字就是"wind25qx"。
在文件drv_spi_flash.c定义

#define SPI_FLASH_DEVICE_NAME       "spi00"
#define SPI_FLASH_CHIP              "wind25qx"

#144 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-09 14:50:10

文件fal_flash_sfud_port.c

/*
 * File      : fal_flash_sfud_port.c
 * This file is part of FAL (Flash Abstraction Layer) package
 * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License along
 *  with this program; if not, write to the Free Software Foundation, Inc.,
 *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Change Logs:
 * Date           Author       Notes
 * 2018-01-26     armink       the first version
 */

#include <fal.h>
#include <sfud.h>

#ifdef FAL_USING_SFUD_PORT
#ifdef RT_USING_SFUD
#include <spi_flash_sfud.h>
#endif


#ifndef FAL_USING_NOR_FLASH_DEV_NAME
#define FAL_USING_NOR_FLASH_DEV_NAME             "wind25qx"
#endif

static int init(void);
static int read(long offset, uint8_t *buf, size_t size);
static int write(long offset, const uint8_t *buf, size_t size);
static int erase(long offset, size_t size);

static sfud_flash_t sfud_dev = NULL;
struct fal_flash_dev nor_flash0 =
{
    .name       = FAL_USING_NOR_FLASH_DEV_NAME,
    .addr       = 0,
    .len        = 16 * 1024 * 1024,
    .blk_size   = 4096,
    .ops        = {init, read, write, erase},
    .write_gran = 1
};

static int init(void)
{

#ifdef RT_USING_SFUD
    /* RT-Thread RTOS platform */
	
    sfud_dev = rt_sfud_flash_find_by_dev_name(FAL_USING_NOR_FLASH_DEV_NAME);
#else
    /* bare metal platform */
    extern sfud_flash sfud_norflash0;
    sfud_dev = &sfud_norflash0;
#endif

    if (NULL == sfud_dev)
    {
        return -1;
    }

    /* update the flash chip information */
    nor_flash0.blk_size = sfud_dev->chip.erase_gran;
    nor_flash0.len = sfud_dev->chip.capacity;

    return 0;
}

static int read(long offset, uint8_t *buf, size_t size)
{
    assert(sfud_dev);
    assert(sfud_dev->init_ok);
    sfud_read(sfud_dev, nor_flash0.addr + offset, size, buf);

    return size;
}

static int write(long offset, const uint8_t *buf, size_t size)
{
    assert(sfud_dev);
    assert(sfud_dev->init_ok);
    if (sfud_write(sfud_dev, nor_flash0.addr + offset, size, buf) != SFUD_SUCCESS)
    {
        return -1;
    }

    return size;
}

static int erase(long offset, size_t size)
{
    assert(sfud_dev);
    assert(sfud_dev->init_ok);
    if (sfud_erase(sfud_dev, nor_flash0.addr + offset, size) != SFUD_SUCCESS)
    {
        return -1;
    }

    return size;
}
#endif /* FAL_USING_SFUD_PORT */

#145 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-09 14:43:40

文件fal_cfg.h

/*
 * File      : fal_cfg.h
 * This file is part of FAL (Flash Abstraction Layer) package
 * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License along
 *  with this program; if not, write to the Free Software Foundation, Inc.,
 *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Change Logs:
 * Date           Author       Notes
 * 2018-05-17     armink       the first version
 */

#ifndef _FAL_CFG_H_
#define _FAL_CFG_H_

#include <rtconfig.h>
#include <board.h>

#define NOR_FLASH_DEV_NAME             "wind25qx"

/* ===================== Flash device Configuration ========================= */
extern struct fal_flash_dev nor_flash0;

/* flash device table */
#define FAL_FLASH_DEV_TABLE                                          \
{                                                                    \
    &nor_flash0,                                                     \
}
/* ====================== Partition Configuration ========================== */
#ifdef FAL_PART_HAS_TABLE_CFG
/* partition table */
#define FAL_PART_TABLE                                                               \
{                                                                                    \
    {FAL_PART_MAGIC_WORD, "sys_partition", NOR_FLASH_DEV_NAME,        	  0,  1*1024*1024, 0}, \
    {FAL_PART_MAGIC_WORD, "root_partition", NOR_FLASH_DEV_NAME, 1*1024*1024, 15*1024*1024, 0}, \
}
#endif /* FAL_PART_HAS_TABLE_CFG */

#endif /* _FAL_CFG_H_ */

        修改完之后,分区表情况是这样的:、
(1)分区0:
分区名字                 :sys_partition,系统分区
分区绑定的块设备      :NOR_FLASH_DEV_NAME
绑定的块设备起始地址:0
本分区的尺寸           :1*1024*1024,也就是1MB
(2)分区1:
分区名字                 :root_partition,根分区
分区绑定的块设备      :NOR_FLASH_DEV_NAME
绑定的块设备起始地址:1*1024*1024,也就是从1MB位置开始。
本分区的尺寸           :15*1024*1024,也就是15MB

#146 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-09 14:43:00

报错是意料之中,好,那我们就按照要求,修改一下fal相关的2个文件。
        [bsp/allwinner_tina_prj_v1/packages/fal-v0.5.0/packge/samples/porting/fal_cfg.h]
        [bsp/allwinner_tina_prj_v1/packages/fal-v0.5.0/packge/samples/porting/fal_flash_sfud_port.c]
        这两个文件修改后,我们将文件挪一下,
(1)h文件复制到[bsp\allwinner_tina_prj_v1\packages\fal-v0.5.0\inc\]目录下
(2)c文件复制到[bsp\allwinner_tina_prj_v1\packages\fal-v0.5.0\src\]目录下
(3)删除[bsp/allwinner_tina_prj_v1/packages/fal-v0.5.0/packge/samples/]这个目录
        (不要问我为什么要这样做,因为我不懂怎么改里面的SConscript脚本,干脆这样干了,~~笑~~)

#147 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 请教CH579的网络,不用库自己初始化的问题 » 2022-01-09 14:26:17

大哥,F1C200s_CH579的板子已经测试好了,
我发个板子给你一起研究学习,请问我怎么联系到你呢?
秋秋加你还没同意。

#148 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-08 20:10:24

回到家里,使用家里电脑,menuconfig之后,选择FAL,然后pkgs --update,成功把包更新到bsp。

Linjie@DESKTOP-NTLR93Q D:\SVN_Public\rt_thread\bsp\allwinner_tina_prj_v1
$ pkgs --update
Start to download package : fal-0.5.0.zip
Downloded 137 KB
Start to unpack. Please wait...
==============================>  FAL v0.5.0 is downloaded successfully.

Operation completed successfully.

Linjie@DESKTOP-NTLR93Q D:\SVN_Public\rt_thread\bsp\allwinner_tina_prj_v1

先看目录里有没有东西

Linjie@DESKTOP-NTLR93Q D:\SVN_Public\rt_thread\bsp\allwinner_tina_prj_v1
$ ls -l packages\
total 11
-rw-r--r-- 1 Linjie Administrators  266 Jan  8 20:00 SConscript
drwxr-xr-x 6 Linjie Administrators 4096 Jan  8 20:00 fal-v0.5.0
-rw-r--r-- 1 Linjie Administrators 4096 Jan  8 20:00 packages.dbsqlite
-rw-r--r-- 1 Linjie Administrators   86 Jan  8 20:00 pkgs.json
-rw-r--r-- 1 Linjie Administrators    2 Jan  8 20:00 pkgs_error.json

        可以看到,fal-v0.5.0已经被下载下来了。
        我们什么都不做,编译看看,因为我们没有实现某些接口,不出意外的话,会报错。
        编译完,果然,报错了。

CC build\libcpu\stack.o
CC build\libcpu\trap.o
CC build\packages\fal-v0.5.0\samples\porting\fal_flash_sfud_port.o
In file included from packages\fal-v0.5.0\samples\porting\fal_flash_sfud_port.c:25:0:
packages\fal-v0.5.0\inc/fal.h:29:21: fatal error: fal_cfg.h: No such file or directory
compilation terminated.
scons: *** [build\packages\fal-v0.5.0\samples\porting\fal_flash_sfud_port.o] Error 1
scons: building terminated because of errors.

#149 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-08 15:21:43

文档的后面还让我们参考这里FAL
说干就干
<1>定义片外 spi flash 设备,可以参考 fal_flash_sfud_port.c
    一会我把这个文件下载下来,捣鼓一下。
<2>定义 flash 设备表
    Flash 设备表定义在 fal_cfg.h 头文件中,定义分区表前需 新建 fal_cfg.h 文件 ,请将该文件统一放在对应 BSP 或工程目录的 port 文件夹下,并将该头文件路径加入到工程。
    fal_cfg.h 可以参考 示例文件 fal/samples/porting/fal_cfg.h 完成。
    一会这个文件我也下载下来,捣鼓捣鼓。

    好,这两个文件弄下来了(复制),那么放在哪里呢?

    想了一下,我编不下去了,source insight包含了整个工程(BSP只包含allwinner_tina_prj_v1,其他没有包含。)。
    好家伙,一个"fal"关键词的文件都没有。感觉是配置了跟没配置一样。

---- fal Matches (0 in 0 files) ----

fal_no_file.png

#150 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-08 14:56:01

上面是FAL的开启指引,咱们按照指引进行一顿操作!

--- fal: Flash Abstraction Layer implement. Manage flash device and partition.                                                           
[*]   Enable debug log output                                                                                                      
[*]   FAL partition table config has defined on 'fal_cfg.h'                         
[*]   FAL uses SFUD drivers                                                                                                                     
        (spi00) The name of the device used by FAL  
        version (v0.5.0)  --->

保存,然后使用命令,从menuconfig更新packge到工程中,packages目录里面有一些内容,
没有.c文件,不知道是不是有异常。

x@LAPTOP-BH56UJG6 E:\SVN_Public\rt_thread\bsp\allwinner_tina_prj_v1
$ pkgs --update

x@LAPTOP-BH56UJG6 E:\SVN_Public\rt_thread\bsp\allwinner_tina_prj_v1
$ ls -l packages\
total 7
-rw-r--r-- 1 meika Administrators  266 Jan  8 13:44 SConscript
-rw-r--r-- 1 meika Administrators 1288 Jan  8 14:27 fal_cfg.h
-rw-r--r-- 1 meika Administrators 2048 Jan  8 13:44 packages.dbsqlite
-rw-r--r-- 1 meika Administrators    2 Jan  8 13:44 pkgs.json
-rw-r--r-- 1 meika Administrators    2 Jan  8 14:59 pkgs_error.json

编译工程,按理说我没有实现指定的接口,应该会报错,但是结果是没有报错,跟之前一样。

#151 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-08 14:53:10

@LinjieGuo
请教了RTT群里的大神,RTT是支持把SPI FLASH进行分区管理的。也就是说,可以把Flash分出2个区或者多个区,然后bin文件下载进分区0,分区1/2...就可以用来格式化了。
这得益于RTT的扩展包FAL--RTT-FAL支持
我们根据指导文件进行操作。
1.1、打开 FAL
使用 fal package 需要在 RT-Thread 的包管理器中选择它,具体路径如下:

RT-Thread online packages
    system packages --->
        --- fal: Flash Abstraction Layer implement. Manage flash device and partition.
        [*]   Enable debug log output
        [*]   FAL partition table config has defined on 'fal_cfg.h'
        (onchip) The flash device which saving partition table
        (65536) The patition table end address relative to flash device offset.
        [ ]   FAL uses SFUD drivers
        (norflash0) The name of the device used by FAL (NEW)
                version (latest)  --->

每个功能的配置说明如下:

(1)开启调试日志输出(默认开启);
(2)分区表是否在 fal_cfg.h 中定义(默认开启)。如果关闭此选项,fal 将会自动去指定 Flash 的指定位置去检索并装载分区表,
   具体配置详见下面两个选项;
          存放分区表的 Flash 设备;
          分区表的 结束地址 位于 Flash 设备上的偏移。
(3)启用 FAL 针对 SFUD 的移植文件(默认关闭);
       
然后让 RT-Thread 的包管理器自动更新,或者使用 pkgs --update 命令更新包到 BSP 中。

#153 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-06 18:53:23

jhon 说:

rtthread studio 里面已经有f1c100s了 ,可以直接一键生成工程 效果一样

哈哈,我对elipse不太爽,现在用source insight阅读代码的。而且好像也是不能使用调试器调试的。

#155 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-05 17:44:12

9、疑问,为什么上面挂接sd卡的代码要延时呢?
    因为不延时,挂接不成功啊!
为什么会这样呢?通过查看代码,其实是跟SDIO相关的。

int rt_mmcsd_core_init(void)
{
    rt_err_t ret;

    /* initialize detect SD cart thread */
    /* initialize mailbox and create detect SD card thread */
    ret = rt_mb_init(&mmcsd_detect_mb, "mmcsdmb",
        &mmcsd_detect_mb_pool[0], sizeof(mmcsd_detect_mb_pool) / sizeof(mmcsd_detect_mb_pool[0]),
        RT_IPC_FLAG_FIFO);
    RT_ASSERT(ret == RT_EOK);

   ret = rt_mb_init(&mmcsd_hotpluge_mb, "mmcsdhotplugmb",
        &mmcsd_hotpluge_mb_pool[0], sizeof(mmcsd_hotpluge_mb_pool) / sizeof(mmcsd_hotpluge_mb_pool[0]),
        RT_IPC_FLAG_FIFO);
    RT_ASSERT(ret == RT_EOK);
     ret = rt_thread_init(&mmcsd_detect_thread, "mmcsd_detect", mmcsd_detect, RT_NULL,
                 &mmcsd_stack[0], RT_MMCSD_STACK_SIZE, RT_MMCSD_THREAD_PREORITY, 20);
    if (ret == RT_EOK)
    {
        rt_thread_startup(&mmcsd_detect_thread);
    }

    rt_sdio_init();

    return 0;
}

rt_mmcsd_core_init()这个函数里面,创建了一个线程,这个线程里面负责SDIO接口的一些事情,
具体做什么事情还没搞懂,凭我的直觉,反正就是跟他有关系。~笑~

void mmcsd_detect(void *param)
{
    struct rt_mmcsd_host *host;
    rt_uint32_t  ocr;
    rt_int32_t  err;

    while (1)
    {
        if (rt_mb_recv(&mmcsd_detect_mb, (rt_ubase_t *)&host, RT_WAITING_FOREVER) == RT_EOK)
        {
            if (host->card == RT_NULL)
            {
                mmcsd_host_lock(host);
                mmcsd_power_up(host);
                mmcsd_go_idle(host);

                mmcsd_send_if_cond(host, host->valid_ocr);

                err = sdio_io_send_op_cond(host, 0, &ocr);
                if (!err)
                {
                    if (init_sdio(host, ocr))
                        mmcsd_power_off(host);
                    mmcsd_host_unlock(host);
                    continue;
                }

                /*
                 * detect SD card
                 */
                err = mmcsd_send_app_op_cond(host, 0, &ocr);
                if (!err)
                {
                    if (init_sd(host, ocr))
                        mmcsd_power_off(host);
                    mmcsd_host_unlock(host);
                    rt_mb_send(&mmcsd_hotpluge_mb, (rt_ubase_t)host);
                    continue;
                }

                /*
                 * detect mmc card
                 */
                err = mmc_send_op_cond(host, 0, &ocr);
                if (!err)
                {
                    if (init_mmc(host, ocr))
                        mmcsd_power_off(host);
                    mmcsd_host_unlock(host);
                    rt_mb_send(&mmcsd_hotpluge_mb, (rt_ubase_t)host);
                    continue;
                }
                mmcsd_host_unlock(host);
            }
            else
            {
                /* card removed */
                mmcsd_host_lock(host);
                if (host->card->sdio_function_num != 0)
                {
                    LOG_W("unsupport sdio card plug out!");
                }
                else
                {
                    rt_mmcsd_blk_remove(host->card);
                    rt_free(host->card);

                    host->card = RT_NULL;
                }
                mmcsd_host_unlock(host);
                rt_mb_send(&mmcsd_hotpluge_mb, (rt_ubase_t)host);
            }
        }
    }
}

#156 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-05 17:32:44

jordonwu 说:

楼主高效! 这跑的是rt-smart?

就是RT-Thread不是rt smart

#157 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-05 16:26:44

8、访问tf/sd卡
(1)格式化sd卡,有3种方法
<方法1>使用msh命令行格式化:

msh />list_device
device           type         ref count
-------- -------------------- ----------
sd0      Block Device         0       
wind25qx Block Device         0       
spi10    SPI Device           0       
spi1     SPI Bus              0       
spi00    SPI Device           0       
spi0     SPI Bus              0       
uart2    Character Device     0       
uart0    Character Device     2       
msh />mkfs -t elm sd0
msh />

<方法2>程序里面格式化(参考官方文档:虚拟文件系统)
dfs_mkfs( "elm", "sd0");//其中elm是文件系统类型,sd0是块设备名称

<方法3>把tf卡拔出来,电脑格式化~~~笑~~

(2)挂载sd卡到根目录
    原本,我想把spi flash块设备挂载为/,然后sd卡挂接为/sdcard,
    奈何本人水平太差,不知道怎么分割spiflash的空间,一部分作为程序空间,一部分作为存储空间。(希望高手指教)
    所以,直接把sd卡挂接为/。
    几行代码搞定,把代码写在线程里:

void start_thread(void *parameter)
{
	int ret = 0;

	rt_thread_delay(100);
	/*挂载sdio0上的sd卡,文件系统类型为elm*/
	if( 0 == dfs_mount("sd0","/","elm", 0,0) )
	{
		printf("sd0 mount to / \n");
	}
	else
	{
		printf("sd0 mount to / faild \n");
	}
		
	
	while(1)
	{
		rt_thread_delay(1);
	}
}	

(3)使用msh给sd卡创建文件夹。
rtt_msh_dir.png

#158 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-05 14:01:22

7、查看代码,看看能不能找到问题所在
        既然是一个成熟的系统,那么,十有八九,不是别人系统问题,只能是单板匹配问题。
        单板差异,那么驱动就有差异,E/MMC相关的是sdio,我们看看SDIO引脚配置是否匹配。
从源码里面看到,
SDIO 0所使用的引脚为:/* SDC0: PF0-PF5 */[[]],
SDIO 1没有使用,所以没有配置。

static void sdio_gpio_init(struct sdio_drv *sdio_des)
{
    int pin;

    if ((rt_uint32_t)sdio_des->mmc_des == MMC0_BASE_ADDR)
    {
        /* SDC0: PF0-PF5 */[[]]
        for (pin = GPIO_PIN_0; pin <= GPIO_PIN_5; pin++)
        {
            gpio_set_func(GPIO_PORT_F, pin, IO_FUN_1);
            gpio_set_pull_mode(GPIO_PORT_F, pin, PULL_UP);
            gpio_set_drive_level(GPIO_PORT_F, pin, DRV_LEVEL_2);
        }
    }
    else if ((rt_uint32_t)sdio_des->mmc_des == MMC1_BASE_ADDR)
    {
        //todo: config gpio port
        RT_ASSERT(0);
    }

}

对应我们的单板,SDIO0 使用的引脚情况是一致的。
找不到红色字的原因,只好先放下他。先看看其他东西怎么玩!

#159 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-05 13:58:38

6、搜索相关内容
    通过搜索关键字:[E/[MMC]] [err]:0x00000100,  RTO
    找到相关帖子
(1)f1c100s 运行时提示错
    看来RTT论坛并不重视答疑,从2020年的帖子,到现在都没有解答。
(2)找不到相关内容~~~~难受!

#160 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-05 13:19:23

5、看看系统启动流程
    我们看看系统注册了什么组件、注册了什么驱动。启动的时候,做了什么事情。
    RTT借助宏INIT_EXPORT实现了自动初始化机制,我们找到这个宏的定义:
(参考帖子:[求助]RTT组件自动统一初始化宏INIT_EXPORT)
    自动初始化机制的核心就在文件D:\rt-thread-gitee_master\src\components.c
和D:\rt-thread-gitee_master\include\rtdef.h里面
因为代码篇幅过长,不做详细描述,咱们使能RTT内核调试宏,将初始化流程打印出来看看
(1)使能内核调试宏

#ifndef RT_DEBUG_INIT
#define RT_DEBUG_INIT                  1
#endif

(2)编译、修饰、烧写、查看启动日志
rtt_boot_log2.png
可以看到,启动的时候,执行了哪些组件的初始化。(BOARD/PREV/DEVICE/COMPONENT/ENV/APP)

打印日志上面2条红色的错误依然醒目,得看看是什么原因导致的。

#161 Re: 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-05 13:11:11

4、现象,接上串口0,看打印。
打印了一些乱七八糟的东西,可能是板子不匹配导致的。
(1)修改main.c文件,干掉一些东西,先让系统跑起来。

#include "rtthread.h"
#include "drv_clock.h"
#include "drv_gpio.h"
#include <rtdevice.h>
#include <dfs_fs.h>
#include <drv_sdio.h>
#include <drv_fb.h>
#include <stdio.h>

#include "UartCursor.h"
#include "LVGL_Interface.h"
#include "demo.h"
#include "AppPriorityList.h"


lcd_layer_Struct lcd_layer1={
	.width=100,
	.height=100,
	.posx=0,
	.posy=0,
	.priority=1,
	.pipe=1,
	.alpha_enable=1,
	.alpha_value=0xA0,
	.vram=(void *)0x80500000,
	.vram_format=VRAM_FORMAT_RGB565,	
};
lcd_layer_Struct lcd_layer2={
	.width=100,
	.height=100,
	.posx=50,
	.posy=50,
	.priority=2,
	.pipe=0,
	.alpha_enable=1,
	.alpha_value=0xA0,
	.vram=(void *)0x80600000,
	.vram_format=VRAM_FORMAT_RGB565,	
};


void start_thread(void *parameter)
{
	while(1)
	{
		rt_thread_delay(1);
	}	
}

#define RT_STARTLOOP_THREAD_STACK_SIZE 2048
#define MY_DISP_HOR_RES  LV_HOR_RES_MAX

static void MainThreadCreat()
{ 
	rt_thread_t tid;
	tid = rt_thread_create("start_thread", start_thread, RT_NULL,
					   RT_STARTLOOP_THREAD_STACK_SIZE, PRIORITY_START_LOOP, 20);
    RT_ASSERT(tid != RT_NULL);
    rt_thread_startup(tid);
	rt_kprintf("[Thread]start_thread Created.\n");
}


int main(int argc, char **argv)
{
	rt_kprintf("Start...\n");
	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());
	MainThreadCreat();
    return 0;
}

(2)编译,修饰,烧写。
    复位单板,启动,看起来较为正常了,但是还是有些问题。
rtt_boot_log.png

插上TF卡,还是这个样子,怀疑是板子引脚不匹配导致的。

#162 全志 SOC » [记录]f1c200s运行RT-thread » 2022-01-05 12:37:16

LinjieGuo
回复: 55

最近画了块f1c200s_ch579m的板子,尝试给200s跑RTT。
F1C100s-LCD-TV-CH579M 板子

涉及内容:
(1)基于RTThread的F1C100s开发(带boot启动+硬件多图层+硬件游标+LVGL+SDIO)
(2)Gitee-RT-Thread
(3)RT-Thread 下载
1、从上面链接下载资源,获取资源
(1)[rt-thread-gitee_master.zip]
(2)[allwinner_tina_prj_v1.zip]
(3)[env_released_1.2.0.zip]
2、安装ENV
(1)安装步骤,请观看视频:跳转到RTT官方视频页
3、解压资源
(1)解压 [rt-thread-gitee_master.zip] 到D盘根目录(当然也可以其他盘啦~笑~)
(2)解压 [allwinner_tina_prj_v1.zip] ,
      然后复制allwinner_tina_prj_v1  到  rt-thread-gitee_master\bsp目录下。
(有人问,为什么不用官方的allwinner_tina呢?因为官方的工程,不带bootloader,咱们为了方便,直接借助网友的工程。)
(3)在目录 D:\rt-thread-gitee_master\bsp\allwinner_tina_prj_v1,打开ENV。
(4)在ENV下,输入menuconfig。
(5)编译RTT,输入scons。
(6)得到未经修饰的rtthread.bin
(7)执行脚本文件,[flashtospi.bat],
这个脚本用于修饰rtthread.bin,增加魔术头,并下载bin文件到flash中。
(8)提示缺少120D.dll文件,咱们从网上复制一个这个文件进来,放在D:\rt-thread-gitee_master\bsp\allwinner_tina_prj_v1\tools目录下。
        继续执行第(7)步,修饰rtthread.bin成功。但是下载失败。
    板子接入USB,按住上面的BOOT键,按下RST键,然后松开RST,此时电脑识别到usb设备。
        继续执行第(7)步,程序下载成功。



bootloader分析笔记.md(右键另存为)
bootloader分析笔记.pdf(右键另存为)

#163 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » [求助]RTT组件自动统一初始化宏INIT_EXPORT » 2021-12-31 13:48:40

问题已经解决,在keil下,关键代码如下:
(1)h文件

/*自动初始化模块*/
#define RT_SECTION(x)               __attribute__((section(x)))
#define RT_UNUSED                   __attribute__((unused))
#define RT_USED                     __attribute__((used))


typedef int (*init_fn_t)(void);
#ifdef _MSC_VER /* we do not support MS VC++ compiler */
#pragma section("rti_fn$f",read)


        struct rt_init_desc
        {
            const char* level;
            const init_fn_t fn;
        };
        #define INIT_EXPORT(fn, level)                                  \
                                const char __rti_level_##fn[] = level"__rt_init_"#fn;   \
                                __declspec(allocate("rti_fn$f"))                        \
                                RT_USED const struct rt_init_desc __rt_init_msc_##fn =  \
                                {__rti_level_##fn, fn };
				
#else

        #define INIT_EXPORT(fn, level)                                                       \
            RT_USED const init_fn_t __rt_init_##fn RT_SECTION(".rti_fn." level) = fn
#endif
				
/* board init routines will be called in board_init() function */
#define INIT_BOARD_EXPORT(fn)           INIT_EXPORT(fn, "1")

/* pre/device/component/env/app init routines will be called in init_thread */
/* components pre-initialization (pure software initilization) */
#define INIT_PREV_EXPORT(fn)            INIT_EXPORT(fn, "2")
/* device initialization */
#define INIT_DEVICE_EXPORT(fn)          INIT_EXPORT(fn, "3")
/* components initialization (dfs, lwip, ...) */
#define INIT_COMPONENT_EXPORT(fn)       INIT_EXPORT(fn, "4")
/* environment initialization (mount disk, ...) */
#define INIT_ENV_EXPORT(fn)             INIT_EXPORT(fn, "5")
/* appliation initialization (rtgui application etc ...) */
#define INIT_APP_EXPORT(fn)             INIT_EXPORT(fn, "6")

(2)c文件

static int rti_start(void)
{
        return 0;
}
INIT_EXPORT(rti_start, "0");
static int rti_end(void)
{
        return 0;
}
INIT_EXPORT(rti_end,"7");


void rt_components_init(void)
{
        const init_fn_t* fn_ptr;
        for (fn_ptr = &__rt_init_rti_start; fn_ptr < &__rt_init_rti_end; )
        {
                (*fn_ptr)();
                fn_ptr ++;
        }
}

以上代码源自RTT bsp,以及1楼参考的文章。
成功的工程:ITX_190_HWA.zip

#164 Re: 全志 SOC » F1C100s-LCD-TV-CH579M 板子 » 2021-12-31 08:48:17

2021/12/31
存在问题:无法使用J-Link调试F1C100s。
解决方法:取掉下图中,R41。使用keil,调试成功。
F1C100S_J_LINK_DEBUG.png

#165 Re: 全志 SOC » F1C100s-LCD-TV-CH579M 板子 » 2021-12-30 10:12:37

CH579M短接P22,无法进入下载模式问题已解决。
解决方法,取掉复位引脚RST(P23)上面的104电容。
CH579M无法进入下载模式.png

#166 Re: 全志 SOC » F1C100s-LCD-TV-CH579M 板子 » 2021-12-30 09:20:09

2021/12/30
调试过程中,还发现了个别的问题。
(1)焊接了3块板子,其中两块,CH579,按住BOOT键,不进入下载模式。只有一片是可以按住进入下载模式。
新焊接的芯片,因为内部没有程序,自动进入了下载模式,能够识别USB设备。
下载程序之后,就无法再次进入了,但是有一片就肯定可以进入。

#167 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » [求助]RTT组件自动统一初始化宏INIT_EXPORT » 2021-12-29 10:50:38

aozima 说:

ITX-190 是啥?

哈哈,是我之前做的一款M0开发板。用的是SWM190单片机。
参考文章里作者提过你,现在看到本尊了。久仰久仰。

#168 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » [求助]RTT组件自动统一初始化宏INIT_EXPORT » 2021-12-29 09:29:43

我把代码移植到ITX-190,也是一样,没有看到注册函数的打印。
附上代码:
(1)whycan下载
(2)站外免费下载(右键另存为)

#169 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » [求助]RTT组件自动统一初始化宏INIT_EXPORT » 2021-12-29 08:26:28

通过下载RTT主线代码,借助STM32F407的RTT keil工程,他是没有指定sct文件的,也就是说,是自动生成的。
RTT_Project.png

#170 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » [求助]RTT组件自动统一初始化宏INIT_EXPORT » 2021-12-28 17:40:55

继续描述场景
(1)优化等级-O0
(2)不勾选One ELF Section per Function
编译后,想要自动调用的宏还是没有被调用。
因为是公司代码,不方便上传,先上次map文件:
CMSIS-RTOS2-free_map.zip
如果大神们不好诊断,明天,我可以用其他单板实现这个框架,发代码出来。

#171 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » [求助]RTT组件自动统一初始化宏INIT_EXPORT » 2021-12-28 17:32:36

编译环境:Keil 5
(1)map文件关键信息

__rt_init_rti_start                      0x08011ce0   Data           4  hw_action.o(.rti_fn.0)
__rt_init_rti_end                        0x08011ce4   Data           4  hw_action.o(.rti_fn.7)

hw_action.o(.text) refers to hw_action.o(.rti_fn.0) for __rt_init_rti_start
hw_action.o(.text) refers to hw_action.o(.rti_fn.7) for __rt_init_rti_end
hw_action.o(.rti_fn.0) refers to hw_action.o(.text) for rti_start
hw_action.o(.rti_fn.7) refers to hw_action.o(.text) for rti_end
hw_dev_led.o(.rti_fn.4) refers to hw_dev_led.o(.text) for register_hw_dev_led

Removing hw_dev_led.o(.rti_fn.4), (4 bytes).

0x08011ce0   0x08011ce0   0x00000004   Data   RO         2106    .rti_fn.0           hw_action.o
0x08011ce4   0x08011ce4   0x00000004   Data   RO         2107    .rti_fn.7           hw_action.o

#172 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » [求助]RTT组件自动统一初始化宏INIT_EXPORT » 2021-12-28 17:21:47

LinjieGuo
回复: 9

如题,我写了个简单的设备管理器,
    每个设备,写完之后,应该有个注册函数,
    我想让这个注册函数自动被管理器调用。
    参考到了RTT的宏,指定这些函数在某一个特定的代码段,
   按顺序排列起来,然后从头到尾,逐个调用。

#define INIT_EXPORT(fn, level)        \
        const init_fn_t __rt_init_##fn RT_SECTION(".rti_fn."level) = fn
#define INIT_BOARD_EXPORT(fn)                		INIT_EXPORT(fn, "1")
#define INIT_CPU_EXPORT(fn)                    	INIT_EXPORT(fn, "2")
#define INIT_DEVICE_EXPORT(fn)                	INIT_EXPORT(fn, "3")
#define INIT_COMPONENT_EXPORT(fn)         			INIT_EXPORT(fn, "4")
#define INIT_FS_EXPORT(fn)                      INIT_EXPORT(fn, "5")
#define INIT_APP_EXPORT(fn)                    	INIT_EXPORT(fn, "6")

    参考这篇文章: RT-Thread 学习笔记(七)
    我从中抄袭了这些代码
(1)头文件代码

/*自动初始化模块*/
#define RT_SECTION(x)               __attribute__((section(x)))
#define RT_UNUSED                   __attribute__((unused))
#define RT_USED                     __attribute__((used))

typedef int (*init_fn_t)(void);
#define INIT_EXPORT(fn, level)        \
        const init_fn_t __rt_init_##fn RT_SECTION(".rti_fn."level) = fn
					
#define INIT_BOARD_EXPORT(fn)                		INIT_EXPORT(fn, "1")
#define INIT_CPU_EXPORT(fn)                    	INIT_EXPORT(fn, "2")
#define INIT_DEVICE_EXPORT(fn)                	INIT_EXPORT(fn, "3")
#define INIT_COMPONENT_EXPORT(fn)         			INIT_EXPORT(fn, "4")
#define INIT_FS_EXPORT(fn)                      INIT_EXPORT(fn, "5")
#define INIT_APP_EXPORT(fn)                    	INIT_EXPORT(fn, "6")

(2)c文件代码

static int rti_start(void)
{
        return 0;
}
INIT_EXPORT(rti_start, "0");
static int rti_end(void)
{
        return 0;
}
INIT_EXPORT(rti_end,"7");


void rt_components_init(void)
{
        const init_fn_t* fn_ptr;
        for (fn_ptr = &__rt_init_rti_start; fn_ptr < &__rt_init_rti_end; )
        {
                (*fn_ptr)();
                fn_ptr ++;
        }
}

(3)调用:
①初始化设备管理器的时候,调用rt_components_init()函数,
②修饰注册函数

INIT_COMPONENT_EXPORT(register_hw_dev_led);

(4)串口打印,没有看到register_hw_dev_led()函数的调用打印。

#173 Re: 全志 SOC » 求助各位大佬,我的车机最近变砖了,用的全志t7的芯片 » 2021-12-28 17:09:46

huangkun 说:

就是想研究一下啊,以后再坏了不能老找4s店

哈哈哈,我知道了,你肯定是想破解车机,
一般闭源车机无限流量。
我的破长安也是这样......

#175 Re: 全志 SOC » F1C100s-LCD-TV-CH579M 板子 » 2021-12-25 14:06:12

2021/12/25 跟帖
板子到了,焊接了几片,发现:
(1)TV接口错了,处理电路的输入和输出搞反了,已经通过割板飞线解决。V2.1版本修改电路图。
(2)FPC40P,不方便焊接,下次延长引脚。
(3)CH579M的焊盘感觉丝印有问题,对准了丝印,焊盘对不上,封装来自立创商城的器件。
(4)CH579M的蓝牙天线没有引出/板载天线。

其他功能还没测试,测试到了再跟帖。
另外,V2.1版本修改电路图。兄弟们有什么需求可以提出来。尽量满足!

#176 Re: 全志 SOC » F1C100s-LCD-TV-CH579M 板子 » 2021-12-24 23:08:29

dgtg 说:

我关注CVBS IN,支持不?
CVBS in好像还没有做好的

晕哥肯定能解决这个问题!!!

#177 Re: 全志 SOC » F1C100s-LCD-TV-CH579M 板子 » 2021-12-24 23:06:42

CHSHIQING 说:

这快板子能支持电容屏吗,感觉电阻屏触摸不是很灵敏

旁边的牛角座,引出了一组IIC接口,可以自行做一个显示板,通过牛角座40P连接起来。

#178 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-12-23 22:15:46

sck852414902 说:

怎么联系晕哥啊,我也想请假晕哥

发帖,描述清楚环境,描述清楚问题,晕哥会悄悄的出现......

#179 Re: 全志 SOC » F1C100s-LCD-TV-CH579M 板子 » 2021-12-23 00:21:53

touchey 说:

@LinjieGuo
CVBS/TV out 带莲花座
看起来真不爽
当让看主播的需求定位啦

因为买回来的摄像头,配的就是莲花线啊。
.png

#180 Re: 全志 SOC » F1C100s-LCD-TV-CH579M 板子 » 2021-12-22 19:55:07

aozima 说:

我给整成一个SPI网卡用,后面看看能不能塞BLE进去。

兄弟,你联系一下晕哥,给晕哥留个信息,我焊接好,测试一下就给您送过去。

#181 Re: 全志 SOC » F1C100s-LCD-TV-CH579M 板子 » 2021-12-22 19:49:47

aozima 说:

我给整成一个SPI网卡用,后面看看能不能塞BLE进去。

蓝牙可以加进去。调完,下一版加。

#183 全志 SOC » F1C100s-LCD-TV-CH579M 板子 » 2021-12-20 12:35:47

LinjieGuo
回复: 18

板子已经发出去制作,但是还没测试。
板子尺寸:10cm*10cm
板载资源:
(1)F1C100s 408MHz 32MB DDR
(2)引出CVBS/TV out 带莲花座
(3)SPI Flash X2
    (都挂载在SPI0上,SPI Flash0 是系统存储器,SPI Flash1焊盘兼容Nand Flash)
(4)引出HP接口,带耳机座
(5)板载功放芯片,可接喇叭
(6)板载MIC模块
(7)板载SD卡座
(8)板载JTAG接口,
    板载UART0接口(PE0 PE1)
    复位按键,Flash Boot按键,方便调试
(9)板载LCD 接口,带背光电路
    FPC40P 电阻屏+ DC2-40P牛角座
(10)板载USB Host座,同时带XH2.54座,方便扩展。
(11)板子DC接口,可12V供电,并引出12V XH2.54座子。
(12)CH579M  30MHz, RAM 20KB/Flash 256KB
      (通过SPI1与F1C100s连接,目的是扩展串口,以太网透传)
a.扩展以太网接口 10Mbps
b.扩展4串口
c.引出SWD调试口,方便调试。
d.引出USB Host接口

        板子还没测试,程序也没有调试,先上图,各位大神也可以过来观摩观摩!
        画板子不专业,希望各位大哥可以指点指点!
        板子资源:
调试屏底板V2_线位图.pdf
调试屏底板V2_原理图.pdf
调试屏底板V2_whycan打包_20211220-1235.zip

注意,很多地方我没打丝印标识,兄弟们可以下载文件,自行打丝印!
注意,很多地方我没打丝印标识,兄弟们可以下载文件,自行打丝印!
注意,很多地方我没打丝印标识,兄弟们可以下载文件,自行打丝印!

#184 Re: 全志 SOC » 网站需要改革,放开文件下载权限(不需要与积分挂钩) » 2021-12-10 20:15:50

兄弟们,看看我的帖子,
https://whycan.com/t_3138.html
里面的流程,内容,
完全是晕哥帮忙搞出来的。
晕哥帮忙解决了问题,
还给了这么多的积分,真的很厚道。
个人认为,对于咱们搞电子/嵌入式的职业,少说都有6K/8k起步吧,
真正能解决问题的资源,不说几十块,几百块,甚至几千块都值得!
白P可耻!!白P可耻!!白P可耻!!

#185 Re: 全志 SOC » X3开发板官方版本新鲜出炉,4核A7,内置128MB DDR,封装FBGA 262,16x13x1.0mm » 2021-10-25 10:24:55

居然还在吵,说实话,别人卖服务的,就值这个价。
我们换个角度讲,你搞了个linux开发板,卖200块。
我买了你的开发板,而我水平又比较差,我天天捣鼓。
一有不懂我就艾特你!!!
第一天,我私聊你:环境怎么装?
第二天,我私聊你:怎么编译内核,怎么编译设备树,怎么......
......
过阵子我私聊你:你这个系统接wifi网络不稳定,是不是有问题?
又过阵子我私聊你:你这个系统使用USB接4G模块没反应,是不是有问题?
......
......
      那么请你告诉我,直到我把产品做出来,技术支持耗掉多少工时?200块够发工资吗?
      我耗掉了多少工时,我老板这个时间段给我发的工资要多少?项目是不是已经逾期了?
      这个时候,有一家开发板厂商,他已经把这个东西都捣鼓好了,我只需要写业务代码就好了,一两天上手。
      但是,这个开发板有点贵,1800元!!!
      天啊,不可想象,居然是我半个月工资了!!!
      ......
      抱歉,兄弟们,我编不下去了,我还要上班......
      总得来说,你们懂的......

#187 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2021-10-06 15:55:14

配置好的VM虚拟机Ubuntu系统 链接:https://pan.baidu.com/s/17vk0_QWRNRuxwi5EZ_P-Xg 提取码:54pb

#188 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2021-10-06 15:51:15

@逍暗博
有可能是拉取资源的时候,拉少了某些东西。
可以尝试下载我上传的虚拟机,对比一下。

#189 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2021-10-06 15:26:19

@wbinchina
哈哈,不好意思,我很久没看贴了。
认真爬一下楼,有答案的。很多答案在晕哥的回复里面。

#191 Re: 全志 SOC » [求助]使用sinlinx的SDK进行QT开发,显示中文异常。 » 2021-08-12 21:20:19

cube 说:

电脑显示正常吗?

请教了多位大神,借鉴了资料:
https://blog.csdn.net/zottffssent123/article/details/114636842
测试完后,确认是编码问题。
修改为GBK文件就可以了。

#193 全志 SOC » [求助]使用sinlinx的SDK进行QT开发,显示中文异常。 » 2021-08-12 19:51:12

LinjieGuo
回复: 3

如题,使用sinlinx的SDK进行QT开发,显示中文异常。情况如下图所示,英文显示正常,textedit显示不正常:

sinlinx_fa_001.png
sinlinx_fa_002.png

代码:
工程文件免费下载
       对于QT开发经验较少,请问各位路过的大哥,这是什么原因,应该如何做呢

#195 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » CH552 版 CMSIS-DAP v2 » 2021-07-24 14:50:55

因为CH552G买不到,使用了CH554,使用WCH工具,通过USB线下载了楼主的各个版本程序,都识别不到设备,(未知设备都没有)。以下是我的电路图纸:
DAP_link_Project.zip


http://103.47.82.49/share/DAP_link_Project.zip

麻烦各位大哥看看。

#197 Re: 全志 SOC » 发现淘宝有卖F1C100S源码的 » 2021-06-23 23:07:41

tdatd 说:

收藏一下,好像不支持视频硬解码吧?

支持的,不过是提供lib,不开源硬解部分。

#199 Re: 全志 SOC » 开源串口屏硬件,软件SDK,硬件图纸全开源,2.8寸屏¥45含液晶触摸 » 2021-06-04 19:46:34

wsy0315 说:

妈的  就是个骗子!就当买教训了,大家也别吹捧了,我买的是组态屏,还的自己烧录引导怎么得,骗子

我买回来当开发版,哈哈,用起来了。

#200 Re: Nuvoton N32905/N32926/NUC972/N9H20/N9H26/N9H30 » NUC972裸机的IAP升级怎么做的?求指导 » 2021-06-04 19:44:55

哇酷小二 说:

你也可以用 uboot(或者其他loader) + app + filesystem 这种方式。

APP进入IAP刷机,可以先写标识位,然后强行进入uboot刷机。

先做一个bootloader,bootloader可以指定加载flash里面的任意内容到内存,我们只要在flash不同区域存放不同的APP就可以了。
bootloader根据标志,进行选择加载。

#201 Re: 全志 SOC » V3S 成功运行dotnet core 5.0 » 2021-05-18 13:53:30

Meekdai 说:

从dotnet core 2.1起,官方就发布了关于arm的支持,但是不是支持ARMv6以及更早的 CPU 指令集版本,而V3S的cortex-A7是可以运行的,所以在论坛里找了一下,发现有一个帖子进行了尝试,但是遇到了ICU的问题就没有下文了,这里我分享一下我的过程。

1、编译V3S的buildroot,用的晕哥的配置,烧录到V3S后,确保可以正常运行。
2、去官网下载dotnet core 的对应版本https://dotnet.microsoft.com/ ,我这里下的是5.0的最新版本。
3、解压下载的包,拷贝到一张TF卡上,因为上百M的文件无法放入spiflash内。
4、在本地电脑上预先编译发布一个可以在arm上运行的应用程序,可以下载我的helloworld.
5、拷贝publish文件到TF卡内。
6、插入TF卡,给V3S上电。
7、挂载TF卡,mount /dev/mmcblk0 /mnt/mmc
8、运行一下dotnet --info,如果报ICU找不到的错,再运行一下export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
9、cd到对应目录,执行./publish/hello_world。

# ./publish/hello_world
Hello World!
你好世界!

附件:
publish.zip
buildroot-2018.08.2-v3s.zip

ICU问题解决链接:
https://github.com/dotnet/core/issues/2186#issuecomment-671105420

哈哈,我被ICU困住了

#202 Re: 全志 SOC » Bringup New F1C100S board No SD-CLK Signal » 2021-05-13 16:18:25

piyush 说:

Hi everyone ,

I design a new PCB with reference of lichee Pi Schematic, but I removed SPI Flash as I don't need to boot from SPI Flash.
After soldering  board  I can't see signal on SDClock, But can see on SPI Flash Clock.

Unfortunately I also not reserve usb connector, as my idea was to flash sdcard pc side and boot the board.

Crystal is oscillating.

So with default boot form F1C100s it will not attempt to boot from SD ?
Any suggestion how to move forward ?

If no option, possibly I need to make new pcb with USB & SPI Flash.

嗨,大家好,

我参考lichee Pi Schematic设计了一个新的PCB,但由于不需要从SPI Flash引导,因此删除了SPI Flash。
焊完板后,我在SDClock上看不到信号,但在SPI闪存时钟上却看到了。

不幸的是,我也不保留USB连接器,因为我的想法是在sdcard pc侧进行闪存并启动开发板。

晶体振荡。

因此,使用默认引导形式F1C100s,它将不会尝试从SD引导吗?
任何建议如何前进?

如果没有选择,可能我需要使用USB和SPI Flash制作新的PCB

Thanks & Regards
PV

如果我没记错的话,是优先从SD卡启动的。是不是SD卡中没有正确的引导程序呢?

#203 Re: 全志 SOC » 发现全志上线了官方的淘宝店 » 2021-04-28 23:02:46

有了。
R329是全志科技针对智能语音旗舰市场推出的一款高集成度SoC,搭载双核A53 1.5G CPU,内置双核400MHz HiFi4 和 800MHz AIPU 0.25TOPS,可以满足各种智能语音产品的需求 。

#206 Re: 全志 SOC » 我想在V3s跑dotnet core 客户端,请问坑友有没有做过相关方案呢? » 2021-04-28 11:04:56

从网上找到icu的源码,试图编译它。参考教程
https://blog.csdn.net/imatt/article/details/109599852
流程如下:
(1)找到我的交叉编译工具链路径
home/sinlinx/SIN-V3s/sinlinx-v3s-sdk/buildroot/out/host/bin/
(2)设置环境
export CC=/work/sinlinx-v3s-sdk/buildroot/out/host/bin/arm-buildroot-linux-gnueabihf-gcc
export CXX=/work/sinlinx-v3s-sdk/buildroot/out/host/bin/arm-buildroot-linux-gnueabihf-g++
export AR=/work/sinlinx-v3s-sdk/buildroot/out/host/bin/arm-buildroot-linux-gnueabihf-ar
#根目录(便于使用)
export CROSS_ROOT=/work/sinlinx-v3s-sdk/buildroot/out/host/bin

(3)进入源码目录,创建arm-build
cd ./icu4c/source
mkdir arm-build

(4)
cd arm-build
../source/runConfigureICU Linux/gcc
make
cd ..
(5)编译
./configure --host=arm-linux --prefix="${CROSS_ROOT}/usr" CXXFLAGS=-std=c++11 --with-sysroot="$CROSS_ROOT" --with-cross-build='/home/sinlinx/Documents/icu/source/arm-build' --disable-samples --disable-tests
(6)install
sudo make install

#207 Re: 全志 SOC » 我想在V3s跑dotnet core 客户端,请问坑友有没有做过相关方案呢? » 2021-04-28 11:00:06

dotnet core for arm32,直接解压就可以使用,现在想要使用sdk编译运行一个程序的时候,提示缺少ICU包,请问如何解决呢?
dotnet_no_ICU.png

#208 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2021-04-26 14:43:12

raspberryman 说:

[    0.952845] Creating 4 MTD partitions on "spi0.0":
[    0.957800] 0x000000000000-0x000000100000 : "u-boot"
[    0.966748] rfd_ftl: no RFD magic found in 'u-boot'
[    0.973911] ftl_cs: FTL header not found.
[    0.979699] 0x000000100000-0x000000210000 : "dtb"
[    0.988407] rfd_ftl: no RFD magic found in 'dtb'
[    0.995293] ftl_cs: FTL header not found.
[    1.000986] 0x000000110000-0x000000620000 : "kernel"
[    1.019761] rfd_ftl: no RFD magic found in 'kernel'
[    1.027133] ftl_cs: FTL header not found.
[    1.032773] 0x000000510000-0x000001000000 : "rootfs"
[    1.066081] rfd_ftl: no RFD magic found in 'rootfs'
[    1.073276] ftl_cs: FTL header not found.

奇怪,这是什么错误?

我也不知道,要请教一下晕哥了

#209 Re: 全志 SOC » 我想在V3s跑dotnet core 客户端,请问坑友有没有做过相关方案呢? » 2021-04-24 11:43:38

解压dotnet-sdk-amr32包,艹,387MB,SPI NAND存不下。只能走tf/sd卡了。

#210 Re: 全志 SOC » 我想在V3s跑dotnet core 客户端,请问坑友有没有做过相关方案呢? » 2021-04-23 18:50:09

shaoxi2010 说:

不太现实,我记得那对库都有接近100M去了

应该问题不大,我看到移植到了imx6上面都有的。

#212 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » POE取出48V电之后,有什么电路简单的DC-DC芯片可以转为12V呢? » 2021-04-21 09:14:59

哇酷小二 说:

合作伙伴的电池输出48V, 我们公司的设备是5V输入, 用什么电源方案比较好呢? DC-DC?
http://whycan.com/t_4561.html#p45268
(出处:哇酷开发者社区)

谢谢晕哥,MP4560方案应该是OK的。

#215 Re: 全志 SOC » 求助 A33 单颗RAM 1G选型 » 2021-04-14 23:06:21

林ღ梦曦 说:

换256x16bitx2cs结构的DDR颗粒就可以,如K4B8G1646,H5TC8G63AMR等DualDie 96ball 封装。原理图不清晰 好像是H5TQ4G83AFR 512x8bit 78ball芯片。单颗粒A33最好用16bit。原理图ODT CKE ZQ CS都是分别引出的,看您PCB引出的焊盘 如果是我画的这样就可以用。
https://whycan.com/files/members/1389/QQ图片20210414125137_20210414-1422.jpg

小姐姐总是这么厉害,仰望!

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

微凉VeiLiang 说:

就这个风格来说我觉得楼上两个应该是同一个人 smile

哈哈,我也觉得。

#218 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 发现一个奇怪现象 » 2021-03-21 20:16:23

licheepi zero BSP 内核(linux3.4) 编译教程 by qianhao [ 1 2 ]250	48,998	2020-11-30 09:06:20 
捡了个便宜的高级ZYNQ XC7Z010 开发板玩玩 by posystorage [ 查看更新 ]  244	43,865	

#220 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2021-03-13 10:16:56

LxOops 说:

楼主请问我在编译根文件系统时,出现了这个问题,该怎么解决
freadahead.c: In function 'freadahead':
freadahead.c:92:3: error: #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
   92 |  #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
      |   ^~~~~
  CC       fseek.o
  CC       fseeko.o
make[5]: *** [Makefile:1915: freadahead.o] Error 1
make[5]: *** Waiting for unfinished jobs....
fseeko.c: In function 'rpl_fseeko':
fseeko.c:110:4: error: #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
  110 |   #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
      |    ^~~~~
make[5]: *** [Makefile:1915: fseeko.o] Error 1
make[4]: *** [Makefile:1674: all] Error 2
make[3]: *** [Makefile:1572: all-recursive] Error 1
make[2]: *** [Makefile:1528:all] 错误 2
make[1]: *** [package/pkg-generic.mk:230:/home/windovo/buildroot-2017.08/output/build/host-m4-1.4.18/.stamp_built] 错误 2
make: *** [Makefile:79:_all] 错误 2

可能是源码没有完整下载导致的。
或者是c库没选对。

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

小智 说:

道歉之后,收益可以给群主或者给开源的大佬

这就没有必要了,商品已经下架了,我们论坛本来就是开源。店铺老板似乎是没有发表精华贴,所以要充钱才能下载whycan的附件。

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

vip888888 说:
amturing 说:

@Kevincoooool
你好,以及哇酷的站长您好,我是帖子中的店铺管理者,由于我的侵权,甚至是无知,我倒卖了开源的作品,是我不对,只是为了搞点小钱,就侵犯了,甚至不顾及了劳动成果,是我的不对,别人购买了这个产品,我也是再说,这个不是我的原创,是网络的以为大佬做的,我并没有声称是自己的劳动成果,在此所有的产品,我已经下架了,来这里给大家以及原创道个歉!

你这个1积分是如何下载到东西的,没有道理,既然不是晕哥的忠实粉丝。其实嘛可以自己下载改一改啥的,如果实在没这技术,店铺表明出处加上个如有侵权请联系,小本生意挣点外快不容易。再给吹嘘一波楼主,说不定楼主一开心还给你下个百八十单的=。=

积分少的情况下,是可以通过花钱购买资源的。

#224 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 开个脑洞,如果stm32f103zet6涨到1000元,还有人买吗? » 2021-03-11 18:03:02

wu150 说:

感觉是STM官方乘机收割吧,因为很多国产品牌冒出了,甚至引脚直接兼容,市场保不住,还不如在替换真空期先收割一段时间,然后又推出吊打国产的芯片

不会,这样做是在给国产机会,这段时间,如果很多公司顺利将产品替换为国产方案,那么STM的客户将会少很多。
我感觉他们应该还是有产量,只是需求太大了,所以影响比较大。
国内芯片,刚出来的品牌,需求量还没有这么大,所以影响比较小。
像全志、晶晨这种,其实需求量还算大,影响也比较大。

#225 Re: 全志 SOC » 发一分全志 视频解码库 API 手册。 » 2021-03-11 18:01:54

hzqlz 说:
心情复杂 说:

感觉楼主分享

不是要感谢我的吗:lol

哈哈,都是英文字母。不注意看,他可能以为是同一个人

#227 华芯微特 » [PCB]SWM32SRET7_5寸_480x800_GT911 » 2021-03-06 13:23:55

LinjieGuo
回复: 8

分享一个华芯微特的SWM32SRET7电路。
芯片介绍:
⚫ 内核
◼ 32 位 ARM® Cortex™-M4 内核
◼ 24 位系统定时器
◼ 工作频率最高 120MHz
◼ 硬件单周期乘法
◼ 集成嵌套向量中断控制器(NVIC),提供最多 240 个、8 级可配置优先级的中断
◼ 通过 SWD 接口烧录
⚫ 片上 SRAM 存储器
◼ 128KB
⚫ 片上 FLASH 存储器
◼ 512KB
◼ 支持用户定制 ISP(在系统编程)更新用户程序
⚫ 串行接口
◼ UART 模块,具有独立 8 字节 FIFO,最高支持主时钟 16 分频
◼ SPI 模块,具有 8 字节独立 FIFO,支持 SPI、SSI 协议,支持 Master/slave 模式
◼ I2C 模块,支持 7 位、10 位地址方式,支持 Master/slave 模式
◼ CAN 模块,支持协议 2.0A(11Bit 标识符)和 2.0B(29Bit 标识符)
⚫ PWM 控制模块
⚫ 定时器模块
◼ 6 路 32 位通用定时器
◆ 具备独立中断 ◆ 可做计数器使用 ◆ 支持输入单脉冲捕获功能
◼ 32 位看门狗定时器,溢出后可配置触发中断或复位芯片
⚫ RTC 模块
⚫ DMA 模块
⚫ SRAMC 模块
⚫ SDRAMC 模块
注意:只支持字操作
◼ 支持 16Bit 位宽的 SDRAM
◼ 支持兼容 PC133 标准的 SDRAM 颗粒
◼ 支持 2MB 到 32MB 的外部 SDRAM 颗粒
⚫ NORFLC 模块
◼ 支持并行 NOR FLASH 接口
◼ 支持 8 位数据位宽和 16 位数据位宽的外部 NOR FLASH 存储器 ◼ 最大支持 24 位地址线
⚫ SDIO 接口模块
⚫ TFT-LCD 驱动模块
◼ 支持 SYNC 接口的外部 LCD 扩展
◼ 支持最高分辨率 1024*768,实际分辨率可以配置
◼ 输出数据宽度 16Bit
◼ 支持横屏和竖屏模式
⚫ GPIO
⚫ 模拟外设
⚫ 欠压检测(BOD)
⚫ 温度传感器
⚫ 环境

价格才10块钱左右,一般的菜单显示足够了。
工程文件:
SWM32SRET7_5寸_480x800_GT911.7z
PDF原理图文件:
PCB_Project.pdf

效果图:
swm32s_002.pngswm32s_001.pngswm32s_003.pngswm32s_004.png

#228 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-03-03 17:05:12

xfdr0805 说:

<b>我驱动装完了,板子是licheepi_zero ,烧录软件无法识别,你板子上的DW键是哪个引脚?</b>

SPIO_Flash的短接引脚。

#229 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 有哪些国外的牛X的BBS技术讨论社区?玩的都过时了。 » 2021-02-24 09:58:36

whyabc666 说:

感觉天朝半导体电子行业长期处于捡垃圾状态。跟在屁股后面跑就完了!

斗胆问一下这位大佬,请问你发明创造了什么呢?

#230 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » Shipping problems … continue » 2021-02-23 13:33:36

Mitko 说:
dso_2019 说:

英语都这么好,看你们写的很费劲,要百度翻译才行

测试百度翻译。

我最近遇到的中国产品的问题是,购买了1W激光模块,工作了12-13个小时,然后就停了。我从其他论坛上了解到的情况对于中国激光模块来说非常普遍。

https://whycan.com/files/members/667/laser.jpg

https://item.taobao.com/item.htm?id=594984044926

It is suggested that the laser head should work for 15 minutes and rest for 5 minutes instead of working continuously, which is beneficial to prolong the life of the laser head.
cc001.png

#235 Re: 全志 SOC » V3S F1C是好芯片,但是没有CAN ADC » 2021-01-30 23:41:42

yishuizi 说:

这两个芯片价格非常好。内置大内存,高主频,刷屏不是事,还有周立功新发布的那个自带内存的芯片,还有SSD201,正准备用这种芯片做东西,奈何发现他们都没有CAN.另外ADC少的可怜,只有一两个通道。我做的东西要用can,adc得十路。遗憾。。。

新唐的蜗牛ARM9吧

#236 Re: 全志 SOC » 这果然很linux » 2021-01-27 17:15:06

wu150 说:

下载帖子下面的虚拟机吧。都配置好了

#241 Re: 全志 SOC » F1C100S做的串口屏硬件图纸分享,有需要的可以联系,坛友优惠价 » 2021-01-20 15:34:27

raspberryman 说:
a06041114 说:

这个如果按照楼主的pcb打样,直接可以用上位机烧录程序?不用下载固件进去嘛?

楼主是卖串口屏的,感觉应该是有加密芯片的吧,如果用楼主公司那一套肯定要去楼主公司买成品。

没有加密芯片的喔,可以当成开发板用。

#242 Re: Cortex M0/M3/M4/M7 » Cortex-M0内核低功耗蓝牙MCU CH579开发板 » 2021-01-20 13:13:34

我去年玩了一下,似乎以太网部分只有一个lib,我使用cjson收发功能,测试一千来遍,就死机了。
通用的业务代码,在STM32F407VET6上面没有这个问题。
以为是堆大小问题,把2者得堆都改成了10KB,问题依旧。
楼主搞定后可以尝试测试看看。

#244 Re: 全志 SOC » f1c100S(licheepi_nano)的linux上运行QT搭建过程 » 2021-01-18 16:52:50

卓林 说:
卓林 说:

请问,我将可执行程序拷贝到板子上执行,发现提示找不到文件

# ./test_qt                                                                                                
-sh: ./test_qt: not found
# 

但是实际上文件是在根目录的,

# ls
bin         lib32       mnt         run         test_qt     var
dev         linuxrc     opt         sbin        tets2
etc         lost+found  proc        sys         tmp
lib         media       root        test        usr

是什么原因呢,方便看看吗?

我把相同的代码用ubuntu的qmake编译后是可以执行的。
并且lib文件夹下也都把需要的文件复制进去了,是不是还需要配置什么东西,环境变量或者别的。

看看是不是权限问题,粗暴一点,chmod 777 xxx

#246 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2021-01-18 16:41:14

编译出来,根文件系统,尺寸大的话,参考这几层的回复。
解决方法:把QT和一些没用到的库取消勾选就好了。
下面的几层回复,没有组织好,但是你要的答案,确实在里面。
http://whycan.com/t_3138.html#p31496
http://whycan.com/t_3138.html#p31627
http://whycan.com/t_3138.html#p36643

#247 Re: 全志 SOC » F1C100S裸奔framebuffer+PWM+GPIO驱动 » 2021-01-18 14:06:40

a06041114 说:

在V3S和F1C100S间摇摆,不知道哪个好

小朋友才做选择,成年人都要不就好了。

#248 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2021-01-15 17:22:29

LinuxGo 说:

你好 Linjie:
尝试了好几次,make 后 在bin里没看到 lrzsz出来
很奇怪,晚上麻烦看下你那有么有?

你是不是没有重新打包。还是勾选错了呢?

#249 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2021-01-15 17:15:31

我使用V3s的buildroot,勾选lrzsz,然后编译,看看有没有。
sinlinx029.png
编译完,重新打包,烧写进单板,启动linux,查看一下有没有,显然,是有的。
sinlinx030.png

#250 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2021-01-15 15:17:10

LinuxGo 说:

你好 linjie
buildroot 里配置了
Search Results ─
  │ Symbol: BR2_PACKAGE_LRZSZ [=y]    这里                                                                                                                         
  │ Type  : boolean                                                                                                                                               
  │ Prompt: lrzsz                                                                                                                                                 
  │   Location:                                                                                                                                                   
  │     -> Target packages                                                                                                                                         
  │ (1)   -> Networking applications                                                                                                                               
  │   Defined at package/lrzsz/Config.in:1                                                                                                                     
  │   Depends on: !BR2_STATIC_LIBS [=n]
编译后 在 output/images/rootfs.tar /bin  里没有找到 lrz命令,,,,
# cd ../
# ls
bin        hello      lib32      media      proc       sbin       usr
dev        hellonano  linuxrc    mnt        root       sys        var
etc        lib        main.c     opt        run        tmp
# cd bin
# ls
ash            dumpkmap       linux64        nice           sh
busybox        echo           ln             pidof          sleep
cat            egrep          login          ping           stty
chattr         false          ls             pipe_progress  su
chgrp          fdflush        lsattr         printenv       sync
chmod          fgrep          mkdir          ps             tar
chown          getopt         mknod          pwd            touch
cp             grep           mktemp         rm             true
cpio           gunzip         more           rmdir          umount
date           gzip           mount          run-parts      uname
dd             hostname       mountpoint     sed            usleep
df             kill           mt             setarch        vi
dmesg          link           mv             setpriv        watch
dnsdomainname  linux32        netstat        setserial      zcat
# lrz
/bin/sh: lrz: not found
#

LinjieGuo 说:
LinuxGo 说:

你好 linjie
那我重新编译 打包 烧录到芯片后
pc下载 SecureCRT.zip 这个工具就能跑了啊
不用自己装了

是的,先运行绿色.bat,输入Y,破解,然后退出,找到SecureCRT.exe执行程序,连接串口就ok了。

在buildroot里勾选,是可以的喔,我测试过。我电脑在家里,我得晚上回去看看,现在不方便搞f1c100s,你看看是不是勾选错了,或者直接下载我配置好的虚拟机,

#251 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2021-01-15 14:11:50

LinuxGo 说:

你好 linjie
那我重新编译 打包 烧录到芯片后
pc下载 SecureCRT.zip 这个工具就能跑了啊
不用自己装了

LinjieGuo 说:

感谢万能的坑友,我搜索了一下,buildroot中确实有这个功能,可以通过搜索lrzsz,找到了它位于这个目录中:
Target packages  --->
         Networking applications  --->
                 [v] lrzsz
勾选之后,编译,根文件系统中就有这个工具了。

是的,先运行绿色.bat,输入Y,破解,然后退出,找到SecureCRT.exe执行程序,连接串口就ok了。

#252 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2021-01-15 13:40:19

LinuxGo 说:

你好 linjie
我在编译 的时候出现
l10nflist.c:42:19: fatal error: argz.h: No such file or directory
# include <argz.h>
                   ^
compilation terminated.
make[2]: *** [Makefile:78: l10nflist.o] Error 1
make[2]: Leaving directory '/home/jonsen/f1c100s/lrzsz/lrzsz-0.12.20/intl'
make[1]: *** [Makefile:172: all-recursive] Error 1
make[1]: Leaving directory '/home/jonsen/f1c100s/lrzsz/lrzsz-0.12.20'
make: *** [Makefile:282: all-recursive-am] Error 2


不知如何处理?

        直接进buildroot里,make menuconfig,然后找到lrzsz这个支持包,勾选上,然后编译。就有了,这种编译的过程学习一下就ok了。

#253 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-15 13:35:11

为什么是这样呢?我这个小白肯定是不知道,那么我们百度一下尝试科普。
参考链接:https://jingyan.baidu.com/article/2c8c281ded86ef0008252ab0.html

        缺省情况下ALSA静音所有的输出。为了获得声音,必须解除主音量和PCM音量的静音。


        amixer -c 0 sset Master,0 100%,100% unmute


        amixer -c 0 sset PCM ,0 100% unmute

选项包括mute,unmute,capture,nocapture,rec,norec,数字或left:right。
        amixer不带参数运行时,返回声卡上所有通道的设置情况。


        为了在每次插入声卡驱动模块时,都打开静音,您可以在/etc/modules.conf加入下列语句:

 
        post-install snd-card-sb16 amixer -c 0 sset Master,0 100%,100% unmute && amixer -c 0 sset PCM ,0 100% unmute


        在成功插入了alsa声卡模块之后,系统会出现/proc/asound目录,这个目录描述了声卡的工作情况,以及创建的设备文件。

        虽然看不懂,但是我们知道了:

        缺省情况下ALSA静音所有的输出。为了获得声音,必须解除主音量和PCM音量的静音。

#254 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-15 13:22:14

翻阅sinlinx的手册,执行下面2行命令,打开声音。

amixer cset numid=1,iface=MIXER,name='Master Playback Volume' 63
amixer cset numid=17,iface=MIXER,name='Speaker Function' 0

        然后,再次使用madplayer播放mp3文件

madplayer ./0001.mp3

        这一次,确实有声音了,也就是说,成功了。

#255 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-15 13:13:35

通过上面的步骤,已经成功构建根文件系统,我们来做打包操作。
只需要修改build.sh文件就可以了,注释掉相关的编译命令。

function build_buildroot()
{
	echo "Build buildroot"
	cd $BUILDROOT_DIR
	mkdir -p $BUILDROOT_OUT_DIR

#	cp configs/sinlinx_defconfig $BUILDROOT_OUT_DIR/.config

#	make O=$BUILDROOT_OUT_DIR oldconfig
	
#	make O=$BUILDROOT_OUT_DIR

        rm -rf $ROOTFS_DIR
	mkdir -p $ROOTFS_DIR
	tar xvf $BUILDROOT_OUT_DIR/images/rootfs.tar.bz2 -C $ROOTFS_DIR

}

        然后,执行这个脚本:
./build.sh
        生成一个img文件,烧写进单板,运行madplayer看看。

madplayer ./0001.mp3

执行成功,输出如下图所示,但是没有声音,不知道为啥。
sinlinx028.png

#256 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-15 13:11:43

我们应该怎么做呢?我们进入./buildroot/out目录,这个是工作目录。进入配置界面。

cd /home/sinlinx/SIN-V3s/sinlinx-v3s-sdk/buildroot/out
make menuconfig

        进入这个界面,把这个项给勾选上。(按Y)
   Target packages  --->
          Audio and video applications  --->
                  [Y] madplay
保存并退出,然后在这个目录下,执行命令

make
mkdir -p rootfs
sudo tar xvf ./images/rootfs.tar.bz2 -C ./rootfs

#257 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-15 11:59:12

我根据参考帖子的方法,交叉编译madplayer,结果是不顺利的,干脆直接在buildroot里面添加madplayer包。
但是sinlinx的源码包编译方法是使用build.sh脚本的,所以我们要这样做。
(1)阅读build.sh文件,得知编译流程
(2)我们手工处理
(3)注释掉手工处理的相关操作,然后./build.sh
        说干就干!通过阅读可以得知,有这样一段代码,用于buildroot的编译。

function build_buildroot()
{
	echo "Build buildroot"
	cd $BUILDROOT_DIR
	mkdir -p $BUILDROOT_OUT_DIR

	cp configs/sinlinx_defconfig $BUILDROOT_OUT_DIR/.config

	make O=$BUILDROOT_OUT_DIR oldconfig
	
	make O=$BUILDROOT_OUT_DIR

        rm -rf $ROOTFS_DIR
	mkdir -p $ROOTFS_DIR
	tar xvf $BUILDROOT_OUT_DIR/images/rootfs.tar.bz2 -C $ROOTFS_DIR

}

把某些变量展开,实际上是这样的。

echo "Build buildroot"
cd /home/sinlinx/SIN-V3s/sinlinx-v3s-sdk/buildroot
mkdir -p /home/sinlinx/SIN-V3s/sinlinx-v3s-sdk/buildroot/out

cp configs/sinlinx_defconfig /home/sinlinx/SIN-V3s/sinlinx-v3s-sdk/buildroot/out/.config

make O=/home/sinlinx/SIN-V3s/sinlinx-v3s-sdk/buildroot/out oldconfig
    
make O=/home/sinlinx/SIN-V3s/sinlinx-v3s-sdk/buildroot/out

rm -rf /home/sinlinx/SIN-V3s/sinlinx-v3s-sdk/rootfs
mkdir -p /home/sinlinx/SIN-V3s/sinlinx-v3s-sdk/rootfs
tar xvf /home/sinlinx/SIN-V3s/sinlinx-v3s-sdk/buildroot/out/images/rootfs.tar.bz2 -C /home/sinlinx/SIN-V3s/sinlinx-v3s-sdk/rootfs

        可以看出,这一段脚本,先复制了.config文件过来,然后make编译buildroot。然后创建rootfs文件,用于解压根文件系统。

#258 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2021-01-14 22:23:54

LinuxGo 说:

你好,Linjie :
我的液晶屏是800✖️480。
在哪边修改?

LinjieGuo 说:
LinuxGo 说:

楼主,helloword出来了,接上液晶,液晶不正常。
Uboot启动时液晶是正常显示了个小企鹅。
文件系统全部加载完后液晶就不正常了。
这改哪边呀?

你接的LCD分辨率多少呢

参考晕哥的评论。
http://whycan.com/t_3138.html#p28452

#259 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2021-01-14 18:01:31

LinuxGo 说:

楼主,helloword出来了,接上液晶,液晶不正常。
Uboot启动时液晶是正常显示了个小企鹅。
文件系统全部加载完后液晶就不正常了。
这改哪边呀?

你接的LCD分辨率多少呢

#260 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2021-01-14 15:24:55

恭喜恭喜,我以为你看了那个CSDN的帖子,已经改过去了呢。

#261 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-14 15:22:13


上面的几步操作,说明: 我们可以使用这个编译器,编译c/cpp程序,并且能够顺利执行。



接下来,我们就应该交叉编译madplayer,尝试播放音频了。

#262 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-14 15:20:34

同理,我们编写一个CPP版本的hellowhycan程序。

//hello.cpp
#include <iostream>
using namespace std;
int main(void)
{
	cout<<"hello whycan"<<endl;
	return 0;
}

执行编译命令:
/home/sinlinx/SIN-V3s/sinlinx-v3s-sdk/buildroot/out/host/bin/arm-linux-g++ -o helloCPP hello.cPP
发送到单板,赋予权限,然后执行,结果如下:
sinlinx027.png

#263 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-14 15:12:36

执行hello程序

./hello

提示错误,应该是缺少权限,我们赋予它可执行权限:

chmod +x hello

继续执行

./hello

显然是成功了。
sinlinx026.png

#264 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-14 15:09:12

启动单板,启动SCRT终端,执行输入root,免密码登录
执行./lrz,弹出一个串口,把我们的可执行程序hello传输过去。
sinlinx024.png
因为我们的波特率是115200,所以,每秒传输速度大概10KB左右。
sinlinx025.png

#265 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-14 15:05:55

得到了hello程序,我们发现,得通过一种方式传数据给单板。
手上又没有TF卡,又不懂怎么用usb传数据,NFS还没研究过,唯有使用调试串口通过命令行终端传输了。
参考我旧的帖子:https://whycan.com/t_4266.html
把lrzsz-0_12_20_tar.gz上传到/home/sinlinx/SIN-V3s/sinlinx-v3s-sdk/app目录。
(1)解压
tar -xzvf lrzsz-0_12_20_tar.gz
(2)配置
cd lrzsz-0.12.20/
./configure --cache=arm-linux
(3)编译
make CC=/home/sinlinx/SIN-V3s/sinlinx-v3s-sdk/buildroot/out/host/bin/arm-linux-gcc

编译得到lrz,lsz。存放在./src/ 目录之下。
我们将这2个工具打包进img文件里面。
修改build.sh。在copy_file_list项中添加2行内容:

    $APP_DIR/lrzsz-0.12.20/src/lsz:$ROOTFS_DIR/root/
    $APP_DIR/lrzsz-0.12.20/src/lrz:$ROOTFS_DIR/root/

最终结果如下

copy_file_list=(
    $ROOTFS_OVERRIDE_DIR/etc/inittab:$ROOTFS_DIR/etc/inittab
    $ROOTFS_OVERRIDE_DIR/etc/profile:$ROOTFS_DIR/etc/profile
    $ROOTFS_OVERRIDE_DIR/etc/wpa_supplicant.conf:$ROOTFS_DIR/etc/wpa_supplicant.conf
    $ROOTFS_OVERRIDE_DIR/etc/hostapd.conf:$ROOTFS_DIR/etc/hostapd.conf
    $ROOTFS_OVERRIDE_DIR/etc/udhcpd.conf:$ROOTFS_DIR/etc/udhcpd.conf
    $ROOTFS_OVERRIDE_DIR/etc/mdev.conf:$ROOTFS_DIR/etc/mdev.conf
    $ROOTFS_OVERRIDE_DIR/etc/ts.conf:$ROOTFS_DIR/etc/ts.conf
    $ROOTFS_OVERRIDE_DIR/etc/init.d/rcS:$ROOTFS_DIR/etc/init.d/
    $ROOTFS_OVERRIDE_DIR/etc/init.d/S50sshd:$ROOTFS_DIR/etc/init.d/
    $ROOTFS_OVERRIDE_DIR/etc/init.d/S90camera:$ROOTFS_DIR/etc/init.d/
    $ROOTFS_OVERRIDE_DIR/etc/init.d/S90wifiap:$ROOTFS_DIR/etc/init.d/_S90wifiap
    $ROOTFS_OVERRIDE_DIR/etc/init.d/S90wifista:$ROOTFS_DIR/etc/init.d/_S90wifista
    $ROOTFS_OVERRIDE_DIR/etc/init.d/S99appstart:$ROOTFS_DIR/etc/init.d/
    $ROOTFS_OVERRIDE_DIR/etc/ssh/sshd_config:$ROOTFS_DIR/etc/ssh/
    $ROOTFS_OVERRIDE_DIR/root/*.sh:$ROOTFS_DIR/root/
    $ROOTFS_OVERRIDE_DIR/root/demo-h264enc:$ROOTFS_DIR/usr/bin/
    $APP_DIR/demo-camera/demo-camera:$ROOTFS_DIR/usr/bin/
    $APP_DIR/demo-qt/digitalclock:$ROOTFS_DIR/root/
    $APP_DIR/lrzsz-0.12.20/src/lsz:$ROOTFS_DIR/root/
    $APP_DIR/lrzsz-0.12.20/src/lrz:$ROOTFS_DIR/root/
    $PREBUILT_DIR/libs/*:$ROOTFS_DIR/lib/
)

重头./build.sh,得到新的img文件,烧录进单板。

#266 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-14 14:59:36

上面我们已经知道应该使用那个编译器了,这个时候我们便是用这个编译器编译一个程序,放到单板上运行吧。

//hello.c   
#include <stdio.h>

int main(void)
{
    printf("hello whycan!\r\n");
    return 0;
}

编译器路径:/home/sinlinx/SIN-V3s/sinlinx-v3s-sdk/buildroot/out/host/bin/arm-linux-gcc

执行编译命令:
/home/sinlinx/SIN-V3s/sinlinx-v3s-sdk/buildroot/out/host/bin/arm-linux-gcc -o hello hello.c

#267 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2021-01-14 14:41:02

LinuxGo 说:

你好 linjie 按上面的检查了一遍  都一样 还是卡在那

LinjieGuo 说:

看看14楼的内容,是否勾选上了。
http://whycan.com/t_3138.html#p26711

唯有召唤无所不能的晕哥出场了。

#268 Re: 全志 SOC » 跟风做板翻车了 » 2021-01-14 14:01:08

ghosoft 说:
微凉VeiLiang 说:
ghosoft 说:

现在情况是连上电脑一点反应没有, 
晶振起振了24MHz
ID脚是悬空的
复位C104+R103
还有什么地方要检查
能不能是供电不行? 我几路都是1117出的

检查VAR 的电阻 是不是200K

破案了,  是这个问题,  用的10K的,  拆了就启动了

然后用FEL把镜像烧进了SPI FLASH, 启动时候报无法识别错误

CPU:   Allwinner F Series (SUNIV)
Model: Lichee Pi Nano
DRAM:  32 MiB
Using default environment

Setting up a 800x480 lcd console (overscan 0x0)
In:    serial@1c25000
Out:   serial@1c25000
Err:   serial@1c25000
Net:   No ethernet found.
starting USB...
No controllers found
Hit any key to stop autoboot:  2  1  0
SF: unrecognized JEDEC id bytes: ef, 70, 18
Failed to initialize SPI flash at 0:0 (error -2)
No SPI flash selected. Please run `sf probe'
No SPI flash selected. Please run `sf probe'
=>


SPI FLASH还有厂家限制么?

有可能,你看看我的贴子
http://whycan.com/t_3138.html#p26632
或者看看是不是使用了非winbind牌子的SPI Flash。
https://blog.csdn.net/kencaber/article/details/107575210

#269 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-14 13:37:38

所以,我们编译器的路径就是:
/home/sinlinx/SIN-V3s/sinlinx-v3s-sdk/buildroot/out/host/bin/

我们尝试使用:
arm-linux-gcc
arm-linux-g++
来编译应用程序。

#270 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-14 09:47:53

在晕哥的指导下,找到了相关的gcc工具:
sinlinx_022.jpg
晕哥说,用最后2个gcc,我们进入这个目录看看。
sinlinx023.png
果然,是一样的。

#271 Re: 全志 SOC » 跟风做板翻车了 » 2021-01-14 09:25:39

raspberryman 说:

自己设计的板子?

id脚不用管,1117的话,cpu那一路启动的瞬间电流很大,可能把电源拉低 导致启不动,仅供参考。

应该不会,我用过SOT-89封装的1117做F1C100s板子,1.2V一个,2.5V一个;3.3V用SOT-23封装的,启动是正常的。

#273 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2021-01-13 16:55:04

帖子上面说了,这是个坑。

晕哥 说:

@LinjieGuo 去掉冒号, 那个地方是荔枝派文档挖的大坑。

u-boot 的 bootcmd 里面 sf probe 0:500000

上面命令行的冒号。

#274 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2021-01-13 16:38:58

LinuxGo 说:

你好 请问这里 选择分支:点击Branch->f1c100s-480272    480272  这个版本和屏幕有关系吗?  分支里只有f1c100s-480272lcd-test 我的屏幕时800*480 也用这个分支吗?

LinjieGuo 说:

4 编译linux内核
4.1 获取linux内核源码
(1)打开链接:https://github.com/Icenowy/linux.git
...

    成功编译,生成的 zImage 在 arch ‣ arm ‣ boot 目录下

https://whycan.cn/t_3281.html#p28440

#275 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-13 15:29:50

既然我们是买的板子,肯定要有技术支持啊。
尝试与开发板的技术联系,得到以下回应。
sinlinx020.png
    他们已经帮我们配好了,将对应的fex文件,cp为sys_config.fex文件就可以了。/笑
    我们一条命令搞定:

cp tools/pack/chips/sun8iw8p1/configs/tiger-spinand-standard/sys_config.fex.800x480 tools/pack/chips/sun8iw8p1/configs/tiger-spinand-standard/sys_config.fex

然后重新执行 ./build.sh

    编译后得到 img文件,重新烧写进去,启动出来,正常进入界面。
sinlinx_021.jpg

    随便触摸一下,发现左右和上下反过来了。

使用最新的2020年8月份的源码,触摸屏正常了。

#276 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-13 15:24:50

那么,应该怎么修改,以匹配LCD呢?
从论坛里的文章,依稀可以得出以下猜测
(1)修改某个fex文件,重新编译,就可以完成配置。
(2)修改设备树文件
(3)修改LCD驱动源码。

#277 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-13 11:59:51

拿到屏幕了,上个图是这样的,应该是屏幕不匹配。
sinlinx019.png

#278 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2021-01-12 20:22:01

好多问题 说:

我用的 deepin 写的驱动,内核和 nano 不一样,驱动在nano上用不了,怎么办?

驱动好像是依赖内核文件的,编译的时候makefile包含内核路径。

#279 Re: 全志 SOC » 跟贴从零构建f1c200s硬件开发板 » 2021-01-12 20:20:13

fastspeet 说:

1、从零开始构建,并不是不能继承别人优秀的部分,而是自己动手入门学习,如果所有的都是拿别人现成,那么我们提高的在哪里?我希望在这个过程中能够,彻底理解和使用这个片子;
2、我想用的东西和不用的东西可能跟别人的不一样,所以才希望自己可以搞出来;
3、大神不是一天变成的,小白起步,重在行动。

说的有理呀

#280 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2021-01-12 13:12:42

如果还是不行,只能上晕哥了。

#281 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2021-01-12 13:11:17

LinuxGo 说:

大佬 我到这步卡住了
记录了16+0 的读入
记录了16+0 的写出
16777216 bytes (17 MB, 16 MiB) copied, 0.0912342 s, 184 MB/s
记录了984+0 的读入
记录了984+0 的写出
1007616 bytes (1.0 MB, 984 KiB) copied, 0.0097831 s, 103 MB/s
记录了7+1 的读入
记录了7+1 的写出
7999 bytes (8.0 kB, 7.8 KiB) copied, 0.000651522 s, 12.3 MB/s
记录了3800+1 的读入
记录了3800+1 的写出
3891312 bytes (3.9 MB, 3.7 MiB) copied, 0.0505016 s, 77.1 MB/s
mkfs.jffs2: error!: rootfs/
            error 2 (No such file or directory)
两个错误
不知怎么办了,。,

LinjieGuo 说:

6 打包出烧写spi flash的bin文件
    先将已经被解压过的文件,统统存放在一个文件夹里,防止干扰视线。
....

用root用户看看,sudo  -i,切换到root用户。

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

willok 说:
sprintf 说:

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

哈哈,业余玩玩,要是50块就能改行岂不是太幸福了?

你可以像我一样啊,啥也不懂,发个帖子,慢慢套出坑友的方案....../笑
你可以白P,但是不能光明正大的白P。

#283 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2021-01-12 11:39:10

willX 说:

楼主,麻烦问下,为什么你编译arm上跑的应用软件时,使用的是:make CC=/home/book/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc
为什么不用直接使用编译kernel时的交叉编译器呢? 比如这个:arm-linux-gnueabi-gcc-7.2.1

   疑问: 为什么会出现两套交叉编译器呢?

根文件系统是buildroot出来的,buildroot里面自己下载了一个编译器,用来编译根文件系统。
我们的内核是单独编译的,所以有2套编译器。
如果buildroot里包含内核,应该编译器就相同了。
我是这样理解的,根文件系统用什么编译器,应用程序就应该用什么编译器。

#285 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2021-01-12 11:22:11

raspberryman 说:

应该是是缺库,用静态链接,一般没有问题。

编译命令行加  -static 能不能跑?

如果是缺少库,参考这篇文章,把相关的库文件复制过来。
https://whycan.cn/t_4266.html
zero_build_001.png

#286 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2021-01-12 10:02:46

我看到你发的贴了,但是我也不知道什么原因,应该是标准输出被重定位了吧,在帖子里等待强大的网友和无所不能的晕哥,应该晚点会回复的。

#287 Re: 全志 SOC » 刚入坑,问下f1c100s用什么写代码的? » 2021-01-09 12:07:05

LinuxGo 说:

哈 看过你的 尝试从零搭建开发环境 ,我就想用来 控制io 完成单片机功能

LinjieGuo 说:
LinuxGo 说:

如题,问下f1c100s用什么写代码的?

你这个问题太广了,得猜。你直接说你想做什么吧。

f1c100s也可以直接裸奔的。在论坛上面有相关帖子,我在外头,不好找,你可以先自行搜索。

#288 Re: 全志 SOC » 刚入坑,问下f1c100s用什么写代码的? » 2021-01-09 10:46:43

LinuxGo 说:

如题,问下f1c100s用什么写代码的?

你这个问题太广了,得猜。你直接说你想做什么吧。

#289 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-08 13:29:07

mysteryli 说:
LinjieGuo 说:
mysteryli 说:

啥型号的nand,能共享一下镜像么,我最近编译V3S遇到点坑,想整个镜像快速测试下我的板子

好,我上传一下上来。
型号是MXIC品牌的MX36LF1GE4,但是我搜索居然搜索不到。
看到开发板的硬件资料,发现居然是精简的核心板原理图,没有告诉我们Flash型号,也没有电源管理芯片相关电路。
我将其修改为MX35LF1G,在tb上面可以搜索出,MX35LF1GE4AB,这个型号应该是一样的。

以下是我编译出来的镜像:
sinlinx-v3s-linux.zip
           镜像第一次启动的时候,8s就可以开机完毕了,第二次启动的时候会多次尝试使用sd卡,要40s左右,不知道是不是有界面选择的原因,我等屏幕到了,然后再做后续介绍。

好的,刚好我手头有这个型号的spiflash,我下载进去试试,就是MX35LF1G,估计携程MX36是写错了
再问一下这个镜像默认的屏幕是多大分辨率的?
还有,如果你常用qq咱们可以一起讨论,我情况和你类似也是单片机转linux哈哈

一起交流是可以的,你在晕哥的别墅QQ群里,加我,名字跟论坛ID一样。
我问过客服,他的描述是这样的:

请问驱动5寸屏幕,需要修改提供的源码吗
已读
alexlees  2021-1-5 13:47:41
一样的 

也就是说,应该不需要修改源码,但是既然是嵌入式单板,使用LCD控制,没有匹配屏幕分辨率的方案,是需要修改源码的,客服的回复似乎不科学,所以我得收到屏才能明确。

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

shawn.d 说:

小白发个优秀帖可能比较难,但充个50块钱有那么难吗?

我也是小白,发个帖子真的不难,如果确实是要下载很有用的资料,花费50块钱真的不多。

#291 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-08 10:24:33

基于帖子 编译开源播放器madplayer,播放音乐,我准备将播放器madplayer移植过来V3s。但是这周要回家,估计要暂停一下更新了。

#292 全志 SOC » 编译开源播放器madplayer,播放音乐 » 2021-01-08 10:15:33

LinjieGuo
回复: 1

为了帖子[慢更]小白探索如何使用V3s在线播放音乐 能够继续进行下去。
    我没有明确的方向,先各方面玩一玩。这个帖子是在linux ubuntu下编译mad player,并播放音乐。
参考文章:构建嵌入式Linux应用系统 —— mp3播放器 madplay的移植
(1)拉取源码
ftp://ftp.mars.org/pub/mpeg/
    从链接里下载一下三个源码包:
libid3tag-0.15.1b.tar.gz 
libmad-0.15.0b.tar.gz 
madplay-0.15.2b.tar.gz
(2)创建工作目录

mkdir /home/sinlinx/SIN-V3s/mad_player

(3)创建各版本输出目录

mkdir tarball src-x86 src-arm target-x86 target-arm

(4)上传源码进tarball
(5)解压源码

tar xzvf libid3tag-0.15.1b.tar.gz  
tar xzvf libmad-0.15.0b.tar.gz  
tar xzvf madplay-0.15.2b.tar.gz

(6)编译 madplay所依赖的库文件
a) libid3tag

#cd ../src-x86/libid3tag-0.15.1b
#./configure -prefix=/home/sinlinx/SIN-V3s/mad_player/target-x86
#make
#make install

b) libmad

#cd ../ libmad-0.15.1b
#./configure -prefix=/home/sinlinx/SIN-V3s/mad_player/target-x86
#make
#make install

编译libmad时候出现
cc1: error: unrecognized command line option “-fforce-mem”
解决方式是:找到libmad configure之后的Makefile,
删除 -fforce-mem
原因是gcc 3.4 或者更高版本,已经将其去除了,所以会出现上面的错误!

(7)编译安装 madplay

如果我们还是像刚才那样配置编译选项:

#cd madplay-0.15.2b
#./configure -prefix=/home/sinlinx/SIN-V3s/mad_player/target-x86


        提示找不到mad.h头文件。出现这样的错误提示,是因为madplay依赖于libmad库,因此在配置madplay的时候,它会查找相关依赖库的头文件mad.h。因为我们之前已经编译并安装了依赖库,所以只需要根据提示设置 CPPFLAGS环境变量,指向mad.h头文件所在的位置即可。

#./configure -prefix=/home/sinlinx/SIN-V3s/mad_player/target-x86 CPPFLAGS=-I/home/sinlinx/SIN-V3s/mad_player/target-x86/include


        提示找不到libmad库文件。出现这样的错误提示,是因为madplay依赖于libmad库,因此在配置madplay的时候,它会查找相关依赖库的库文件libmad.so。因为我们之前已经编译并安装了依赖库,所以只需要根据提示设置
LDFLAGS环境变量,指向libmad.so库文件所在的位置即可

#./configure -prefix=/home/sinlinx/SIN-V3s/mad_player/target-x86 CPPFLAGS=-I/home/sinlinx/SIN-V3s/mad_player/target-x86/include LDFLAGS=-L/home/sinlinx/SIN-V3s/mad_player/target-x86/lib
#make
#make install

(8)上传一个mp3文件到/home/sinlinx/SIN-V3s/mad_player/target-x86/bin目录。
(我的mp3文件命名为0001.mp3)
(9)在ubuntu上面播放测试madplayer是否能够工作

cd /home/sinlinx/SIN-V3s/mad_player/target-x86/bin
./madplay 0001.mp3

        执行命令后,console上面输出内容如下:

MPEG Audio Decoder 0.15.2 (beta) - Copyright © 2000-2004 Robert Leslie et al.
          Title: Tetris
         Artist: CheetahMobile Games
      Orchestra: CheetahMobile Games
          Album:  Rolling Sky OST
          Track: 29
        Comment: 163 key(Don't
                 modify):L64FU3W4YxX3ZFTmbZ+8/ZgOOJyVt636f0A43R5s34w/N/EwiWIaOfxUHrFg3D/M22zIla23pRDyjuXVCLS5X/ZvQzK6axrNQ8gWcDRKttQ5E3IHnFFfZNkcu3s7h5xu6T1giWpDOF7JQ+v5zZymuhXEEKJXDlvbvzCMXtWuc0tOqAFjB1LU8Bpn1KUMZfB4yc+OKKkh9RJYwYFAlPFxbnGgEw48aj1XbtIMqj1L4N90GxVZzb2UiXwC7Nq+LR3hEts1WHTw3VpwZNgfkJCk3AG+jptSFm1mr/bO6SwtthEfhcuiSRwdJPdkC00xAMqinwGKqW5vnFU31mV1xqM0JuwGInEmUNWYQMpNZP0GKJOumDCUST5+YLFBS42L00AsfaKz75jOamT5rDYPUgPLEsd3XK/Tt53wt4hscf+jekS9dUie90VDRxtghnEXkkaZn5B46TkKdSNLX160ISdbf6ywi4SypxwQOc9S/+QUi9s=

        输出这样的内容,说明成功了,并且可以听到悦耳的音乐。

#293 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-08 09:21:38

wu150 说:

你说的这个功能现在一些强大的单片机也可以实现,rt-thread论坛以前就有一个播放网络收音机的项目

是的,一开始我是打算使用STM32F407来完成这个项目,但是如果我懂linux,实现起来就方便多了,所以想通过这样一次的探究,增加自己的开发经验。
以后想做相关项目,将会容易许多。

#294 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-08 09:08:37

mysteryli 说:
LinjieGuo 说:
mysteryli 说:

你这个是基于SD卡还是spiflash?

spi nand的。

啥型号的nand,能共享一下镜像么,我最近编译V3S遇到点坑,想整个镜像快速测试下我的板子

好,我上传一下上来。
型号是MXIC品牌的MX36LF1GE4,但是我搜索居然搜索不到。
看到开发板的硬件资料,发现居然是精简的核心板原理图,没有告诉我们Flash型号,也没有电源管理芯片相关电路。
我将其修改为MX35LF1G,在tb上面可以搜索出,MX35LF1GE4AB,这个型号应该是一样的。

以下是我编译出来的镜像:
sinlinx-v3s-linux.zip
           镜像第一次启动的时候,8s就可以开机完毕了,第二次启动的时候会多次尝试使用sd卡,要40s左右,不知道是不是有界面选择的原因,我等屏幕到了,然后再做后续介绍。

#295 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-07 17:29:51

系统已用资源如下:
sinlinx018.png

搜索来的信息,是这样说的:

从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,
因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached.

是不是意味着,我的应用程序可以使用31476+14716 ==>大概45MB内存可用呢?

#296 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-07 17:11:22

伍零壹 说:

哥们 你这个板子的资料能否共享下?

请看这个链接,我就不发了,如果失效了,你问这个楼主吧。
板子其实也不贵,默认顺丰是23元,买的时候让店主改普通快递就好了。
https://whycan.com/t_5349.html

#297 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-07 17:09:24

mysteryli 说:

你这个是基于SD卡还是spiflash?

spi nand的。

#298 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-07 16:04:47

启动系统,log疯狂输出:
sinlinx016.png
输入root,不用密码,直接登录成功。
sinlinx017.png

#299 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-07 15:39:49

浏览这个目录,里面的内容是这样的
sinlinx010.png

我卸掉设备的驱动,然后重新使用这个路径里的驱动文件,进行设备驱动更新。得到这样的结果:
sinlinx011.png
看起来驱动是装好了,但是这个烧写软件丝毫没有动静!
sinlinx013.png
反复拔插,拔插,拔插几下,居然就连接上了。先烧写这一次,然后再查原因。
sinlinx014.png
烧写速度还算可以
sinlinx015.png
重新测试了几下,发现这种情况下才能成功连接:
(1)拔掉电源
(2)按住Dw键
(3)插入usb
(4)上电。
        如果我上电后再插usb,只能识别驱动,这个烧写软件并不能成功识别。

#300 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-07 15:22:16

raspberryman 说:
LinjieGuo 说:

想烧写img文件,折腾了好久,死活识别不到。
https://whycan.com/files/members/1845/sinlinx006.png

更换全志官方的驱动,一般就在这个烧写软件那个目录。

我把设备驱动给卸掉,然后重新插入,得到这样的一个未知设备
sinlinx007.png
使用指定目录安装
sinlinx008.png
结果是失败的。
sinlinx009.png

注意,当前环境已经是"禁用强制驱动签名"

#301 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-07 14:59:10

想烧写img文件,折腾了好久,死活识别不到。
sinlinx006.png

#302 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-05 13:14:49

运行虚拟机,根据手册上面的教程,安装工具:

需要安装的主要依赖库:
sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386
x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dri:i386 libgl1-mesa-dev g++-multilib
mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev
sudo apt-get install u-boot-tools
sudo apt-get install libswitch-perl

创建工作目录:

mkdir -p /home/sinlinx/SIN-V3s

上传源码到ubuntu,解压源码:
 进入工作目中

cd /home/sinlinx/SIN-V3s/

 解压

tar zxvf sinlinx-v3s-sdk_20190519.tar.gz

 编译

cd sinlinx-v3s-sdk
./build.sh

        我们不关心这个过程做了什么,只知道,我们拿到了源码,编译之后,最终可以生成img文件。
sinlinx005.png

#303 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-05 11:52:51

==>根据手册上的介绍,安装软件
        安装过程,发现有个usb驱动没有装上,有个红色的X,看起来就很不舒服。
sinlinx003.png
        这可能是win10驱动签名的问题,我们以签名免认证方式启动win10看看是否能解决。
        果然,成功了。
sinlinx004.png

#304 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-05 11:45:28

拉取时间耗时接近3个钟,终于全部拉取完毕。解压虚拟机:
sinlinx001.png
解压的同时,阅读开发板使用手册。
sinlinx002.png
看起来,有我们需要的东西,我们的目的是实现功能,尽可能关注应用开发,而忽略掉内核啊,驱动啊这种东西。

#305 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-05 11:13:36

第一步先把系统跑起来。龟速拉取芯灵思的V3s SDK,利用搭建好的虚拟机直接开发。
sinlinx.png

#308 Re: 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-04 16:42:03

从需求可以联想到的词汇:"推流","拉流","音频播放","以太网","DHCP"
那么至少需要满足的是:
(1)以太网 DHCP
(2)播放音频
(3)"拉流"并解码播放

请教晕哥得知,可以使用tinyplay播放音频文件。那么我第一步,先使用tinyplay 播放本机文件吧。(慢更)

#309 全志 SOC » [慢更]小白探索如何使用V3s播放音乐  » 2021-01-04 16:40:08

LinjieGuo
回复: 68

小白探讨如何使用V3s在线播放播放音乐。
        今天有人找我做一个项目,上面需求是接网线,在线播放音乐。
        然而,这样的东西,我居然不敢接,因为没做过,怕周期长,烂尾。
        这个东西难吗?答案肯定是否定的。
        毕业多年,我一只从事单片机的开发,尽管懂得一些linux开发的皮毛,实际上做任何项目我都避开linux,原因很简单,我内心有恐惧感,我怕项目发展下去,出现不可控的情况发生。
        我认为我个人业余时间多做知识储备,总有一天有能力使用linux开发的。我带着这样的心态,一年两年过去了,我的linux水平却没有提升,我回头观望,我关注的是:
        "XX芯片性价比高",
        "鸿蒙代码薄,比linux容易",
        "rtt单片机就能跑,容易上手"
        ......
        我的内心一直在避开使用linux开发,带着对linux的恐惧,进行其他知识的储备,可以说,这几年来,我的linux水平没有提高,甚至还倒退了。
        今天,看到这样的一个项目需求,我虽然不敢接,但是我意识到了我知识的浅薄。我在思考,社会人才这么多,要是linux都不懂,不知道什么时候被淘汰涨不动工资。我也是时候,应该做些什么了。
        我拿出吃灰的V3s开发板,打算利用业余时间,实现这个"简单"的项目。

#310 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2021-01-03 17:32:02

sechfly 说:

楼主:

我编译内核的时候会报错,

在ubuntu 和centos下都试过, 网上说更新ubuntu的内核到其他版本可以解决,试过好几个版本也都一样,你们编译没遇到这个问题吗?


make[1]: *** 正在等待未完成的任务....
In file included from ./include/linux/string.h:6:0,
                 from ./include/uapi/linux/uuid.h:22,
                 from ./include/linux/uuid.h:19,
                 from ./include/linux/mod_devicetable.h:13,
                 from scripts/mod/devicetable-offsets.c:3:
./include/linux/compiler.h:242:10: fatal error: asm/barrier.h: 没有那个文件或目录
#include <asm/barrier.h>
          ^~~~~~~~~~~~~~~
compilation terminated.
scripts/Makefile.build:150: recipe for target 'scripts/mod/devicetable-offsets.s' failed
make[2]: *** [scripts/mod/devicetable-offsets.s] Error 1
make[2]: *** 正在等待未完成的任务....
scripts/Makefile.build:575: recipe for target 'scripts/mod' failed
make[1]: *** [scripts/mod] Error 2
Makefile:556: recipe for target 'scripts' failed
make: *** [scripts] Error 2
root@sechfly-All-Series:/mnt/home/sechfly/samba/F1C100S/Code/linux-f1c100s-480272lcd-test#
root@sechfly-All-Series:/mnt/home/sechfly/samba/F1C100S/Code/linux-f1c100s-480272lcd-test#
root@sechfly-All-Series:/mnt/home/sechfly/samba/F1C100S/Code/linux-f1c100s-480272lcd-test#

没有遇到过这种问题呢!兄弟你要自己琢磨一下了。是不是文件没拉齐全

#311 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2021-01-03 17:30:49

qsv 说:

请教个问题,按照楼主LinjieGuo的方法编译hello.c,用的楼主的buildroot,为啥出现下列问题:
qsv@ubuntu:~/rootfs$ ../buildroot-2017.08/output/host/bin/arm-linux-gcc -o Boardhello hello.c
/home/qsv/buildroot-2017.08/output/host/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/6.4.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.27' not found (required by /home/qsv/buildroot-2017.08/output/host/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/6.4.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld)
collect2: error: ld returned 1 exit status

我也不知道。得你自己琢磨一下了。

#313 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-12-24 19:51:43

我明白你的意思了,因为我的是6核心12线程处理器,所以可以选择12个Core,你的不是,是不能这样选的。只能选择适合的Core数。

#314 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-12-23 19:28:25

tang6397 说:

LinjieGuo暈哥
virtual machine setting-->hard ware-->processors-->
12*cpu-->8*cpu-->ok
open ubuntu 64.vmx-->Install Tools......
(PM 5:00-->10:00 )任务管理噐-->不允许, 12*cpu,
在VMWare里改没有用, 你的已配置环境work.zip移植不了.

看看是不是你的虚拟机软件版本问题呢,我使用得是很旧的VM 12Pro

#315 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-12-19 00:23:02

修改成你自己的cpu线程数就可以了

#317 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-12-14 23:57:55

tang6397 说:

LinjieGuo暈哥, 下载你的虚拟机不能在我的pc机上打开,
因为它是12 *cpu, 我的pc 机8*cpu, 请求介决办法! 先谢了!

哇,明天我截个图,你看一下就明白了。虚拟机软件配置一下就可以了的。

#323 全志 SOC » 使用[Aodzip]的buildroot资源为tiny-200s-r3构建linux运行环境 » 2020-10-10 09:56:11

LinjieGuo
回复: 13

使用[Aodzip]的buildroot资源为tiny-200s-r3构建linux运行环境
        buildroot-tiny200 (F1C100/200s) 开发包近期更新内容 * 已支持DVP摄像头 *
(1)安装ubuntu,如果看过这篇文章,可以直接使用这个教程里的虚拟机
        https://whycan.com/t_3138.html
        https://pan.baidu.com/s/17vk0_QWRNRuxwi5EZ_P-Xg 提取码:54pb
        虚拟机:账号:book 密码:linjie (本来想123456的,但构建手快了)
        已有系统忽略此项。
(2)查看ubuntu 的工作ip,使用ssh工具连接上去
①查看虚拟机的工作ip:

ip a

ip_a.png
②使用ssh工具,连上ubuntu
   
(3)git buildroot资源
①新建工作目录

mkdir tiny-200s

②进入工作目录并查看当前文件夹

cd tiny-200s
pwd

打印结果如下:

book@book-virtual-machine:~/tiny-200s$ pwd
/home/book/tiny-200s

③根据git上面的教程,安装相关的库文件

sudo apt install wget unzip build-essential git bc swig libncurses-dev libpython3-dev libssl-dev
sudo apt install pkg-config zlib1g-dev libusb-dev libusb-1.0-0-dev
sudo apt install python3-distutils
sudo apt install dfu-util

④拉取新鲜的资源

git clone https://hub.fastgit.org/aodzip/buildroot-tiny200.git  

如果失效,则使用原来的链接:

git clone https://github.com/aodzip/buildroot-tiny200.git 

(4)编译动作
①进入buildroot工程目录

cd buildroot-tiny200/

②根据作者的教程,一步步来

make widora_mangopi_r3_defconfig
make -j12

    -j12表示多线程编译的意思,如果不知道自己平台多少核,直接make即可。
(5)处理buildroot过程中的异常
若是这个过程中,有什么资源下不动,可以使用迅雷下载,然后上传到buildroot的工作目录下./buildroot-tiny200/dl文件夹的对应名字的目录中。
例如,uboot资源下载太慢。

--2020-10-10 09:58:42--  ftp://ftp.denx.de/pub/u-boot/u-boot-2020.01.tar.bz2
           => “/home/book/tiny-200s/buildroot-tiny200/output/build/.u-boot-2020.01.tar.bz2.TkMJ9l/output”
正在解析主机 ftp.denx.de (ftp.denx.de)... 85.214.49.3, 2a01:238:43f4:4600:bc64:4f44:381f:1163
正在连接 ftp.denx.de (ftp.denx.de)|85.214.49.3|:21... 已连接。
正在以 anonymous 登录 ... 登录成功!
==> SYST ... 完成。    ==> PWD ... 完成。
==> TYPE I ... 完成。  ==> CWD (1) /pub/u-boot ... 完成。
==> SIZE u-boot-2020.01.tar.bz2 ... 14716125
==> PASV ... 完成。    ==> RETR u-boot-2020.01.tar.bz2 ... 完成。
长度:14716125 (14M) (非正式数据)

u-boot-2020.01.tar.bz2                            11%[===========>                                                                                               ]   1.60M  6.40KB/s    剩余 27m 4s

       可以看出速度,实在是太慢了,我们可以Crrl+C结束当前make,
       复制链接ftp://ftp.denx.de/pub/u-boot/u-boot-2020.01.tar.bz2,
       使用迅雷将他下载好,然后上传到/home/book/tiny-200s/buildroot-tiny200/dl/uboot-tools目录
       (怎么知道是那个文件夹呢?看到文件夹名字和资源相近的,怼进去就可以了)
       继续make: make -j12

--2020-10-10 10:26:40--  https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.66.tar.xz
正在解析主机 cdn.kernel.org (cdn.kernel.org)... 151.101.109.176, 2a04:4e42:1a::432
正在连接 cdn.kernel.org (cdn.kernel.org)|151.101.109.176|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 109584352 (105M) [application/x-xz]
正在保存至: “/home/book/tiny-200s/buildroot-tiny200/output/build/.linux-5.4.66.tar.xz.bzVSR9/output”

/.linux-5.4.66.tar.xz.bzVSR9/output               15%[================>                                                                                          ]  16.62M  42.4KB/s    剩余 46m 13

        linux内核资源下载太慢,Crrl+C结束当前make,
        复制链接https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.66.tar.xz,
        使用迅雷将他下载好,然后上传到/home/book/tiny-200s/buildroot-tiny200/dl/linux目录
        继续make:make -j12
如果是git上面的资源下载太慢,甚至下载不动,使用迅雷也很慢,修改git的域名前缀为https://hub.fastgit.org/,应该能增加速度。



(6)漫长的buildroot等待过程
(7)成功后,可以目录./buildroot-tiny200/output/images下看到以下文件

 ll output/images/
总用量 661345
drwxrwxrwx 1 root root      4096 10月  8 22:12 ./
drwxrwxrwx 1 root root      4096 10月  8 22:12 ../
-rwxrwxrwx 1 root root   8388608 10月  8 22:12 bootfs.vfat*
-rwxrwxrwx 1 root root     15533 10月  8 21:49 devicetree.dtb*
-rwxrwxrwx 1 root root 167772160 10月  8 22:12 flasher.vfat*
-rwxrwxrwx 1 root root  19373568 10月  8 22:11 rootfs.cpio*
-rwxrwxrwx 1 root root   6373990 10月  8 22:11 rootfs.cpio.gz*
-rwxrwxrwx 1 root root   6374054 10月  8 22:12 rootfs.cpio.uboot*
-rwxrwxrwx 1 root root 104857600 10月  8 22:12 rootfs.ext2*
lrwxrwxrwx 1 root root        11 10月  8 22:12 rootfs.ext4 -> rootfs.ext2*
-rwxrwxrwx 1 root root   6422528 10月  8 22:12 rootfs.squashfs*
-rwxrwxrwx 1 root root  20490240 10月  8 22:12 rootfs.tar*
-rwxrwxrwx 1 root root 168820736 10月  8 22:12 sysimage-flasher.img*
-rwxrwxrwx 1 root root 134217728 10月  8 22:12 sysimage-nand.img*
-rwxrwxrwx 1 root root  16777216 10月  8 22:12 sysimage-nor.img*
-rwxrwxrwx 1 root root 114294784 10月  8 22:12 sysimage-sdcard.img*
-rwxrwxrwx 1 root root    408239 10月  8 21:26 u-boot.bin*
-rwxrwxrwx 1 root root    461551 10月  8 22:12 u-boot-sunxi-with-nand-spl.bin*
-rwxrwxrwx 1 root root    441071 10月  8 21:26 u-boot-sunxi-with-spl.bin*
-rwxrwxrwx 1 root root   4317544 10月  8 21:49 zImage*

(8)卡刷
        复制sysimage-sdcard.img,使用winimg32烧写SD卡。
参考链接:如何用Win32 Disk Imager烧录镜像到SD卡
https://jingyan.baidu.com/article/f96699bbea3181894e3c1be8.html
(8)dfu线刷spi-nand
        插入tiny-200s-r3,(usb连接)
        执行以下命令:

./fel-uboot.sh && ./dfu-nand-all.sh

        即可完成spi-nand线刷。

#324 Re: 全志 SOC » buildroot-tiny200 (F1C100/200s) 开发包近期更新内容 * 已支持DVP摄像头 *,支持SPI NAND » 2020-10-09 09:23:39

从./output/image/文件夹里看到了很多个img/bin文件:

output/images$ ls
bootfs.vfat        rootfs.ext2           sysimage-nor.img
devicetree.dtb     rootfs.ext4           sysimage-sdcard.img
flasher.vfat       rootfs.squashfs       u-boot.bin
rootfs.cpio        rootfs.tar            u-boot-sunxi-with-nand-spl.bin
rootfs.cpio.gz     sysimage-flasher.img  u-boot-sunxi-with-spl.bin
rootfs.cpio.uboot  sysimage-nand.img     zImage

        请问可以描述一下各个文件是何作用吗?我应该如何烧写spi nand呢?应该不用上编程烧录器吧!/手动笑!

#325 Re: 全志 SOC » buildroot-tiny200 (F1C100/200s) 开发包近期更新内容 * 已支持DVP摄像头 *,支持SPI NAND » 2020-10-08 22:19:35

aodzip 说:

亲,这边建议直接拉取一个新鲜的呢

拉取了新鲜的buildroot,果然ok了,准备下载进去看看。

INFO: vfat(flasher.vfat): cmd: "MTOOLS_SKIP_CHECK=1 mcopy -bsp -i '/home/book/HDD/Disk0/Document/StudyData/F1C100s/tiny200s/buildroot-tiny200/output/images/flasher.vfat' '/home/book/HDD/Disk0/Document/StudyData/F1C100s/tiny200s/buildroot-tiny200/output/images/sysimage-nor.img' '::'" (stderr):
INFO: vfat(flasher.vfat): adding file 'sysimage-nand.img' as 'sysimage-nand.img' ...
INFO: vfat(flasher.vfat): cmd: "MTOOLS_SKIP_CHECK=1 mcopy -bsp -i '/home/book/HDD/Disk0/Document/StudyData/F1C100s/tiny200s/buildroot-tiny200/output/images/flasher.vfat' '/home/book/HDD/Disk0/Document/StudyData/F1C100s/tiny200s/buildroot-tiny200/output/images/sysimage-nand.img' '::'" (stderr):
INFO: hdimage(sysimage-flasher.img): adding partition 'u-boot' (in MBR) from 'u-boot-sunxi-with-spl.bin' ...
INFO: hdimage(sysimage-flasher.img): adding partition 'boot' (in MBR) from 'flasher.vfat' ...
INFO: hdimage(sysimage-flasher.img): writing MBR

#326 Re: 全志 SOC » buildroot-tiny200 (F1C100/200s) 开发包近期更新内容 * 已支持DVP摄像头 *,支持SPI NAND » 2020-10-06 23:27:59

我直接使用晕哥网站的离线包 buildroot-tiny200-20200924.tgz,检出git资源,然后执行了以下操作:
(1)make widora_mangopi_r3_defconfig
(2)make
最终,出现以下错误信息,请问是我这里环境出现问题,还是作者的buildroot资源问题呢?

YACC    scripts/dtc/dtc-parser.tab.[ch]
  HOSTCC  scripts/dtc/dtc-lexer.lex.o
  HOSTCC  scripts/dtc/dtc-parser.tab.o
  HOSTLD  scripts/dtc/dtc
  HOSTCC  scripts/kallsyms
  UPD     include/generated/utsrelease.h
  HOSTCC  scripts/conmakehash
  HOSTCC  scripts/sortextable
  DTC     arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dtb
arch/arm/boot/dts/suniv-f1c100s.dtsi:501.21-512.5: ERROR (phandle_references): /soc/i2c@1c27000: Reference to non-existent node or label "i2c0_pins"

ERROR: Input tree has errors, aborting (use -f to force output)
scripts/Makefile.lib:285: recipe for target 'arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dtb' failed
make[3]: *** [arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dtb] Error 2
Makefile:1269: recipe for target 'dtbs' failed
make[2]: *** [dtbs] Error 2
make[2]: *** 正在等待未完成的任务....
  HOSTCC  scripts/asn1_compiler
  HOSTCC  scripts/extract-cert
package/pkg-generic.mk:266: recipe for target '/home/book/HDD/Disk0/Document/StudyData/F1C100s/tiny200s-buildroot/output/build/linux-5.4.66/.stamp_built' failed
make[1]: *** [/home/book/HDD/Disk0/Document/StudyData/F1C100s/tiny200s-buildroot/output/build/linux-5.4.66/.stamp_built] Error 2
Makefile:84: recipe for target '_all' failed
make: *** [_all] Error 2

#328 Re: 全志 SOC » 分享SINLINX的V3S开发板LCD转接板工程 » 2020-09-24 18:36:48

谢谢分享,不过我看到图纸上面有个USB-->TTL UART*2,芯片似乎挺贵的,我也用不上,所以删掉了。修改后的图纸上传上来,褥羊毛了,但是没有测试。
LCD转接板(sinlinx)_CbyLinjie.zip

#330 Re: 全志 SOC » F1C100S RTT+USB CDC Device调试记录 » 2020-09-20 04:08:06

坑网现在对这一届学生要求比较高

#331 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2020-09-18 02:01:12

rongjun 说:

楼主有没有试过在Mac下进行编译调试?

没有使用过mac系统呢

#332 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-09-17 03:23:13

ykf232323 说:
LinjieGuo 说:

帖子上面的所有解压命令都是解压到当前目录的。

 

你好,UBOOT下载到指定目录吗?我用解压命令找不到文件

需要先从git上下载uboot对应分支的源码,然后,上传到ubuntu上面,才能解压。

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

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 正常即可

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程序了。

顶一下呀。

#334 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-09-16 15:42:45

ykf232323 说:

下载UBOOT,然后解压,这个过程请详细一些,是不是需要下载到指定文件夹?否则我解压时怎么找到下载的文件?

帖子上面的所有解压命令都是解压到当前目录的。

#336 Re: 全志 SOC » 求助:F1C100S IIC(TWI)问题 » 2020-09-07 19:49:15

波形很差,楼主明确一下芯片来源,也许是用到二手芯片了......

#339 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-08-11 14:24:05

mrcong 说:

我的是94M 合成bin100多M

可以下载我分享的虚拟机,看看配置方面有什么不一样。

#341 Re: 全志 SOC » 我开始晕了。。跑裸机时F1C100s的BROM怎么把程序拷到0x00000000上运行了。。 » 2020-08-06 15:35:30

f_Endman 说:

还能这么套娃。。惊了 yikes

正常操作,你看串口的寄存器时,很多寄存器都是同一个地址的,只不过分配置时哪些寄存器生效,工作时哪些寄存器生效。

#342 Re: 站务公告/网站建设 » ★★★各位亲爱的朋友, 关于本站解锁下载功能的说明★★★ » 2020-08-06 15:24:07

支持晕哥!为了提高论坛帖子的质量,杜绝伸手党。此举能让论坛的运作更顺利,更长久。

#343 Re: 全志 SOC » 我开始晕了。。跑裸机时F1C100s的BROM怎么把程序拷到0x00000000上运行了。。 » 2020-08-05 22:39:18

f_Endman 说:

为什么BROM要把代码拷到BROM区域上执行?这样不会覆盖掉BROM自己吗?我之前一直以为引导程序先会在SRAM区域0x10000上开始运行,链接脚本都是这么写的。。话说BROM不是ROM吗。。怎么当成RAM用了都。。全志这个芯片好魔性啊>A<

BROM相同地址下存在一块SRAM,尺寸是32KB,可以用来跑SPL

#344 Re: Cortex M0/M3/M4/M7 » 日了狗了,淘宝100片STM32F103VCT6,安装到板子后JLINK检测发现都是107. » 2020-07-31 17:01:46

sindy 说:

日了狗了,淘宝100片STM32F103VCT6,安装到板子后JLINK检测发现都是107.

本来以为赚大发了

但是发现不能用呀,USB的IP不一样,拿107伪装103有更大的利润可投?

翻新的时候,丝印打错了吧,如果方便的话,可以把购买途径放出来,防止坑友被无良卖家坑。

#345 Re: 华芯微特 » 刚画了个液晶驱动板,打算试试1024X600分辨率的7寸屏驱动 » 2020-07-30 11:39:20

zhouyu2019 说:

肯定没法跑的,16位的SDRAM的带宽在那里,至少得用32位的SDRAM才勉强可以用。我用STM32F7就是这样,加了个32位的SDRAM,再把图形加速用起来才能做点界面。

SWM320的SDRAM比较慢,驱动800X480差不多。上这么大分辨率应该是不行的。

#346 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-07-24 20:38:38

淡定 说:

虚拟机下载了,book用户名,密码是啥呢?

不好意思,因为习惯了,密码应该是linjie

#347 Re: 华芯微特 » 画了一个带sram的swm320的板子 » 2020-07-17 12:47:19

hameyou 说:

这个片子驱动 SDRAM 不知道效果咋样,就是主频有点低了。

是的,SDRAM,只能工作在30MHz

#348 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2020-07-15 15:39:23

jared1716 说:

请问大神,有没有win10下的开发环境?

使用samba,然后挂载文件系统到win本地,可以使用source insight去编写代码,编写完使用一个sh脚本编译,直接在win下访问linux进行bin文件烧录即可。其他方法,我也没用,不清楚。

#349 Re: 全志 SOC » F1C100S 简易 boot 运行 RTT 原理。 » 2020-07-14 15:19:38

mark一下,项目结束后来试试。谢谢分享。

#351 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2020-07-10 10:07:31

lz206 说:

学习了,学习了,学习了,hhh

你这样水积分可不好喔。

#352 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 感觉被套路了 » 2020-07-09 17:52:57

yyblike 说:

看到一个很好的文件,准备下载下,结果要让我发表三个回复,结果认真的发了三个回复,一看2积分,还差一个,重新找两个自己擅长的评论下,结果又评论了两三个,还是2积分,感觉自己被深深的套路了。
https://whycan.cn/files/members/4744/sp200709_173950.png

不会吧,可能还没更新过来,你看我积分不也上来了吗。放心,站主不会搞你的。

#353 Re: DOPI开源摄像头(HI3516/HI3518) » sun网友搞定的8bitRGB屏 » 2020-07-06 09:02:01

tango_zhu 说:

这个前面是要有转换电路的吧 有没有直接的8bit串口屏

有啊,3.0寸的,我这里有一些,你要不要玩玩。

#354 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2020-07-02 15:49:02

willX 说:

关于adb功能的启用,在Linux3.14上,楼主有什么好的推荐吗?

我现在打开了usb gadget驱动,usb functionfs驱动,编译好了adbd、adb,但是板子接电脑一直不能识别(一点动静没有)。不明原因啊,痛苦了几天了。
楼主有空帮忙看看,多谢啦。

转 123楼:https://whycan.cn/t_2794.html

不好意思,这个版本我也没搞定。

#355 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2020-07-02 15:46:10

liuy 说:

楼主能不能出一个SPI NAND启动教程啊

在论坛里找找,使用支持SPI Nand的Uboot就可以了。

#356 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 初入嵌入式行业要怎么攒经验 » 2020-07-02 09:37:00

数字单片机的话,不妨先学习一下RTOS,也许在写程序方面有质的改变。

#358 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2020-06-28 16:59:26

willX 说:

感谢楼楼大力支持啊,但是我觉得是不是adb更好用啊?而且速度也快。

是的,adb速度比较快!

#359 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-06-28 09:27:20

钢筋 说:

没有人遇到过flash芯片是xt25f128b的情况吗

我自己囤了一些25Q128,用的都是这个型号,所以你得在站里搜索一下了,我印象中是有解决办法的。

#360 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-06-28 09:26:07

zhou_yutao 说:

最近才开始学习f1c100s,多谢楼主分享,顺便咨询楼主,哪儿可以搞定LicheePi Nano Dock底板?想研习下声音问题!

请问你的意思是买一个Dock底板吗,荔枝派店铺能够购买的呢

#361 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-06-23 14:36:30

hong 说:



这个情况一直存在,各种修改,,还是解决不了问题,,能指导一下吗

可以下载我打包出来的虚拟机,看看uboot/内核/根文件系统的配置与你配置的有什么不一样,我工作比较忙,也比较长时间没玩了,不好意思。

#365 华芯微特 » ITX-190——初级用户手册 » 2020-06-18 22:57:54

LinjieGuo
回复: 4

========================================================================
    板子回来了,但是还没测试,测试完便开始售卖。

    上2张开发板快照:
1.jpg
2.jpg
none_20200611-1519.png
    先上一个《ITX-190初级用户手册》。
ITX-190初级用户手册.pdf
    注意:文档的内容并非全部都是你想要的,如果没有耐心阅读文档,请通过PDF目录找到相关内容。
    这个芯片真的很容易使用,代码还在整理当中,各位先观摩一下《ITX-190初级用户手册》。
    ITX-190的设计并不涉及丰富的硬件的外设,推出这款开发板的初衷:
(1)推广国产MCU
(2)利用此开发板作为一个工具,实现一些有趣的/工作上可能用到软件。
    有兴趣的朋友可以加入QQ群 1126261648 进行交流。
========================================================================

#366 Re: 哇酷地摊(跳蚤市场) » 迪卡的闲鱼店,各种好货 » 2020-06-18 20:31:12

迪卡大哥,小东西如果确实不用,建议还是送人吧,很难卖出去的。

#368 Re: 全志 SOC » 请问f1c100s的sdram寄存器的信息在哪可以找到呀?用户手册里没有找到 » 2020-06-16 12:00:59

kq851211 说:

请问f1c100s的sdram寄存器的信息在哪可以找到呀?用户手册里没有找到

我记得在时钟配置哪里,不知道具体是不是,你可以看看。

#370 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2020-06-15 23:30:13

嵌入式冲 说:

只能用这个才可以用lrz吗

里面解压出来,有一个bat文件,支持绿色和谐软件的。很多终端软件都支持。自行搜索吧。

#371 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2020-06-15 21:52:23

嵌入式冲 说:

这个不能在putty软件用吗,卡住了,没有弹出来

用Scrt,上面留链接了

#372 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 25元的矿渣BeagleBone Black_NAND版AM335x » 2020-06-15 15:59:33

david.guo 说:

我手里有一个矿渣, 加载系统一直处于starting kernel, 然后按reset后, 矿渣悲剧了, 显示
U-Boot SPL 2013.04-dirty (Aug 04 2014 - 11:06:44)
Control_status {00420313}
Could not probe the EEPROM; something fundamentally wrong on the I2C bus.
Could not get board ID.
default->A335BNLT.

再就没有消息了,   有没有解锁办法?

自己搞一个内核进去不可以吗?

#374 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-06-12 15:01:15

wings 说:

换了这个工具链运行的时候显示段错误了,只是写了个helloworld
# ./hello
Segmentation fault
需要的动态库也移植了
wings@ubuntu:~/Lichee/opt$ ./compile.sh
  NEEDED               libc.so.0
不知道咋回事啊

使用buildroot里面的交叉编译工具链。参考这篇文章:
https://whycan.cn/t_4266.html

#375 华芯微特 » ITX-190——一个性能不强却支持强大的开发板 » 2020-06-11 15:24:06

LinjieGuo
回复: 9

/*--------------------------------------------------------------------------*/
   
   
    ITX-190开发板,采用华芯微特公司的SWM190-CBT7作为主控,通过人性化的设计,以及强大的软件支持,致力于为广大单片机开发者提供一系列的解决方案。

    你可能会问,主控芯片SWM190-CBT7的性能似乎比较低,他到底有什么用?

    这个问题其实可以在手册有介绍,在此不做答。

    但是我可以告诉你,ITX-190,他的特性是开发时简单,但是功能却不简单。

    你购买一个开发板,有2种可能:①工作时,代码的验证。②学习开发板的某个方案

    ITX-190,为第二种人准备,也就是说,我们是来学东西,不是买回来吃灰的,让我们一起造轮子吧。

    大概描述一下,ITX-190提供了以下的软件支持:
        (1)FreeRTOS
        (2)命令行控制台
        (3)TF卡-perFAT文件系统
        (4)SPI Flash +Xmodem实现字库传输
        (5)LCD12864/SPI TFT显示
        (6)ADC 按键
        (7)PWM液晶屏背光
        ....
    对于工程,我们进行了分层的管理方法:
none_20200611-1719.png
    说了这么多,我们来看看ITX-190长什么样子:

none_20200611-1515.png
none_20200611-1534.png

    对它的板载资源进行描述:

-%E6%8C%87%E7%A4%BA.png

    接口引出:

none_20200611-1519.png

    更让人眼馋的是,它的售价居然不到30元,只需要29.9元就可以买到。

    不过让人遗憾的是,板子目前还未发售,需要等待十天左右。

    来一段视频看看支持花絮:


    想要获取ITX-190,请关注whycan,7月之内发售,量不多,仅有50台,密切关注喔。

#376 Re: 全志 SOC » 一个迟到的高性价比开发板!芯灵思SIN-V3S! » 2020-06-10 22:59:20

其实主要的坑在于LCD接口,非通用40P/50P接口

#377 Re: DOPI开源摄像头(HI3516/HI3518) » 海思烧录工具Hitool使用方法 » 2020-06-10 21:53:06

装驱动的时候,一定要装这个,不要装错喔,我已经浪费很多时间了。(一定要装带K的)
!!!一定要装下面的版本
!!!一定要装下面的版本
!!!一定要装下面的版本
!!!一定要装下面的版本

usb%E9%A9%B1%E5%8A%A8.png

#378 Re: 全志 SOC » DIY一块全志V3S的学习板,尽量引出所有功能(感谢晕哥支持) » 2020-06-10 11:55:47

panlizzx 说:

弄了几块v3s,都焊失败了。技术有待提高。

估计不是技术问题,可能烙铁头坏了,换个好的头看看。

#379 Re: DOPI开源摄像头(HI3516/HI3518) » DOPI编译 » 2020-06-10 11:54:41

顶一下呀,我昨天也编译成功了,发现根文件系统是编译好的,貌似只是打包一下而已。

#380 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-06-10 09:08:57

1040122617@qq.com 说:

论坛上好多方法我都试过了,都行不通,帖子里要修改的地方我都修改了,还是不打印分区信息。

可以直接下载我配置好的虚拟机,这个地方,有2个可能:{
    ①荔枝派的坑,一个":"引发的问题
    ②15楼,配置一下有"Loopback"字眼的项
}

#381 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-06-09 20:51:13

jason1106 说:

使用烧录命令也没啥问题 烧录的进度条也正常显示 但每次都没烧进去 都还是之前的内容 这是什么情况啊

flash虚焊吧,或者flash有问题,换一个或者补焊锡看看。
只要识别到芯片,下载软件可以对空气下载。

#382 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-06-09 18:18:41

1040122617@qq.com 说:

log打印 m25p80 spi0.0: w25q128 (16384 Kbytes)之后没有打印分区信息,最后卡在了Waiting for root device /dev/mtdblock3...请问这个怎么解决呢

回到15楼,不要着急,慢慢看。

#383 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-06-05 20:00:54

zstein 说:

编译的rootfs太大了。哪里有精简的配置。。

可以下载我的虚拟机看看,都配置好了。

#385 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 吐槽一下,typec 还几种规格呀,6针的,16针的24针的,还有各种固定方式 » 2020-05-31 14:54:55

孤星泪 说:

单片机侧来用3.0的没用,16针足够了,要是单独供电6针的就够了,不过我发现16针的版本焊接居然比microusb还容易,以后就用这个了

兄弟,容易焊接的版本,能不能放个链接出来看看呀。

#386 Re: 全志 SOC » 我也来分享一个F1C100s的核心板电路吧 » 2020-05-29 15:49:41

cwspads 说:

一看就是新手画的,ic的电源滤波电容都放很远去了,成了摆设。

这都被你发现啦,哈哈

#387 全志 SOC » 我也来分享一个F1C100s的核心板电路吧 » 2020-05-29 15:22:27

LinjieGuo
回复: 5

FluxBB bbcode 俯视图
FluxBB bbcode 后视图
核心板代号:DemoF1
工程会报绿色,是因为Keep-out线跟邮票孔产生切割了。按一下T 然后按M就可以屏蔽掉了。
下载原理图以及PCB文件:
https://whycan.cn/files/members/1845/F1CXXX_CoreBoard.zip

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

lhc200 说:

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

求版主开放下载

淘宝店不是站主开的喔。你应该找淘宝店老板。

#389 Re: 全志 SOC » DIY一块全志V3S的学习板,尽量引出所有功能(感谢晕哥支持) » 2020-05-23 19:16:08

mysteryli 说:

已发

我也想要一份,请问可以发一下吗:1032055624@qq.com

#390 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-05-21 18:44:28

auroal1 说:

能不能把那个交叉编译工具链转发一下,下了一天都没有弄下来,好麻烦

复制链接,然后使用迅雷下载。
http://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabi/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz

#393 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-05-20 20:28:35

mirkerson 说:

有裸机开发这块的资料吗,一直没接触过现在着急这方面的资料,头都大了

淘宝上有个卖代码的,1.5K,做项目可以直接购买。搜索"小淘气科技"店铺就可以了

#394 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-05-20 09:36:35

wjn060454 说:

您好 http://dl.sipeed.com/LICHEE/Nano/SDK/config 这个config文件请问能分享下么?今天上这个发现config文件下不了。。跟着教程走不下去了。。

稍等,我传上来
https://whycan.cn/files/members/1845/config_ok.zip
下载文件,解压zip包,然后将config_ok复制为.config文件就可以了

#395 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-05-18 10:22:01

tiandiyixian20 说:
MMC:   SUNXI SD/MMC: 0
SF: Detected w25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
*** Warning - bad CRC, using default environment

Setting up a 480x272 lcd console (overscan 0x0)
In:    serial@1c25000
Out:   serial@1c25000
Err:   serial@1c25000
Net:   No ethernet found.
starting USB...
No controllers found
Hit any key to stop autoboot:  0 
SF: Detected w25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
device 0 offset 0x100000, size 0x4000
SF: 16384 bytes @ 0x100000 Read: OK
device 0 offset 0x110000, size 0x400000
SF: 4194304 bytes @ 0x110000 Read: OK
## Flattened Device Tree blob at 80c00000
   Booting using the fdt blob at 0x80c00000
   Loading Device Tree to 80e05000, end 80e0a3b5 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.2.0-licheepi-nano+ (zjf@book-virtual-machine) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #10 Mon May 18 01:03:16 CST 2020
[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] OF: fdt: Machine model: Lichee Pi Nano
[    0.000000] Memory policy: Data cache writeback
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 8128
[    0.000000] Kernel command line: console=ttyS0,115200 panic=5 rootwait root=/dev/mtdblock3 rw rootfstype=jffs2
[    0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Memory: 22696K/32768K available (6144K kernel code, 233K rwdata, 1472K rodata, 1024K init, 228K bss, 10072K reserved, 0K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] random: get_random_bytes called from start_kernel+0x254/0x42c with crng_init=0
[    0.000047] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000127] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000709] Console: colour dummy device 80x30
[    0.000807] Calibrating delay loop... 203.16 BogoMIPS (lpj=1015808)
[    0.070245] pid_max: default: 32768 minimum: 301
[    0.070674] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.070714] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.072400] CPU: Testing write buffer coherency: ok
[    0.074424] Setting up static identity map for 0x80100000 - 0x80100058
[    0.076719] devtmpfs: initialized
[    0.084396] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.084457] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.084767] pinctrl core: initialized pinctrl subsystem
[    0.086849] NET: Registered protocol family 16
[    0.088278] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.090494] cpuidle: using governor menu
[    0.144032] SCSI subsystem initialized
[    0.144444] usbcore: registered new interface driver usbfs
[    0.144604] usbcore: registered new interface driver hub
[    0.144792] usbcore: registered new device driver usb
[    0.145298] pps_core: LinuxPPS API ver. 1 registered
[    0.145324] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.145850] Advanced Linux Sound Architecture Driver Initialized.
[    0.147573] clocksource: Switched to clocksource timer
[    0.178726] NET: Registered protocol family 2
[    0.180294] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes)
[    0.180374] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.180435] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.180483] TCP: Hash tables configured (established 1024 bind 1024)
[    0.180774] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.180835] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.181346] NET: Registered protocol family 1
[    0.183860] NetWinder Floating Point Emulator V0.97 (double precision)
[    0.186019] Initialise system trusted keyrings
[    0.186614] workingset: timestamp_bits=30 max_order=13 bucket_order=0
[    0.207933] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.214559] Key type asymmetric registered
[    0.214596] Asymmetric key parser 'x509' registered
[    0.214781] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    0.214808] io scheduler mq-deadline registered
[    0.214825] io scheduler kyber registered
[    0.227429] suniv-f1c100s-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[    0.421545] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[    0.427394] suniv-f1c100s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pe not found, using dummy regulator
[    0.429331] printk: console [ttyS0] disabled
[    0.449598] 1c25000.serial: ttyS0 at MMIO 0x1c25000 (irq = 25, base_baud = 6250000) is a 16550A
[    0.829064] printk: console [ttyS0] enabled
[    0.837489] suniv-f1c100s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pd not found, using dummy regulator
[    0.889606] brd: module loaded
[    0.913898] loop: module loaded
[    0.918114] SCSI Media Changer driver v0.25 
[    0.923707] suniv-f1c100s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pc not found, using dummy regulator
[    0.936693] m25p80 spi0.0: w25q128 (16384 Kbytes)
[    0.942461] 4 fixed-partitions partitions found on MTD device spi0.0
[    0.948941] Creating 4 MTD partitions on "spi0.0":
[    0.953754] 0x000000000000-0x000000100000 : "u-boot"
[    0.962681] 0x000000100000-0x000000110000 : "dtb"
[    0.971157] 0x000000110000-0x000000510000 : "kernel"
[    0.979945] 0x000000510000-0x000001000000 : "rootfs"
[    0.989196] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.995727] ehci-platform: EHCI generic platform driver
[    1.001387] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.007714] ohci-platform: OHCI generic platform driver
[    1.013380] usbcore: registered new interface driver usb-storage
[    1.021215] input: 1c23400.lradc as /devices/platform/soc/1c23400.lradc/input/input0
[    1.030119] i2c /dev entries driver
[    1.037778] suniv-f1c100s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pf not found, using dummy regulator
[    1.075933] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 16384 KB
[    1.085407] usbcore: registered new interface driver usbhid
[    1.091109] usbhid: USB HID core driver
[    1.111993] NET: Registered protocol family 17
[    1.116556] Key type dns_resolver registered
[    1.123402] Loading compiled-in X.509 certificates
[    1.138698] suniv-f1c100s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pd not found, using dummy regulator
[    1.150125] sun4i-backend 1e60000.display-backend: Couldn't find matching frontend, frontend features disabled
[    1.160956] sun4i-drm display-engine: bound 1e60000.display-backend (ops 0xc0738094)
[    1.170036] sun4i-drm display-engine: bound 1c0c000.lcd-controller (ops 0xc0736cec)
[    1.177818] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    1.184421] [drm] No driver support for vblank timestamp query.
[    1.191734] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 0
[    1.249948] Console: switching to colour frame buffer device 60x34
[    1.273157] sun4i-drm display-engine: fb0: sun4i-drmdrmfb frame buffer device
[    1.281268] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    1.299447] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    1.306225] vcc5v0: disabling
[    1.309331] ALSA device list:
[    1.312362]   #0: Loopback 1
[    1.316260] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    1.324988] cfg80211: failed to load regulatory.db
[    1.331966] VFS: Cannot open root device "mtdblock3" or unknown-block(31,3): error -19
[    1.340000] Please append a correct "root=" boot option; here are the available partitions:
[    1.348483] 0100            4096 ram0 
[    1.348493]  (driver?)
[    1.354603] 0101            4096 ram1 
[    1.354607]  (driver?)
[    1.360782] 0102            4096 ram2 
[    1.360788]  (driver?)
[    1.366930] 0103            4096 ram3 
[    1.366936]  (driver?)
[    1.373097] 0104            4096 ram4 
[    1.373104]  (driver?)
[    1.379281] 0105            4096 ram5 
[    1.379288]  (driver?)
[    1.385390] 0106            4096 ram6 
[    1.385395]  (driver?)
[    1.391552] 0107            4096 ram7 
[    1.391557]  (driver?)
[    1.397725] 0108            4096 ram8 
[    1.397733]  (driver?)
[    1.403834] 0109            4096 ram9 
[    1.403838]  (driver?)
[    1.410010] 010a            4096 ram10 
[    1.410017]  (driver?)
[    1.416240] 010b            4096 ram11 
[    1.416246]  (driver?)
[    1.422489] 010c            4096 ram12 
[    1.422495]  (driver?)
[    1.428728] 010d            4096 ram13 
[    1.428735]  (driver?)
[    1.434952] 010e            4096 ram14 
[    1.434958]  (driver?)
[    1.441203] 010f            4096 ram15 
[    1.441210]  (driver?)
[    1.447434] 1f00            1024 mtdblock0 
[    1.447441]  (driver?)
[    1.454031] 1f01              64 mtdblock1 
[    1.454037]  (driver?)
[    1.460617] 1f02            4096 mtdblock2 
[    1.460622]  (driver?)
[    1.467188] 1f03           11200 mtdblock3 
[    1.467194]  (driver?)
[    1.473780] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,3)
[    1.482120] CPU: 0 PID: 1 Comm: swapper Not tainted 5.2.0-licheepi-nano+ #10
[    1.489147] Hardware name: Allwinner suniv Family
[    1.493902] [<c010e478>] (unwind_backtrace) from [<c010ba5c>] (show_stack+0x10/0x14)
[    1.501647] [<c010ba5c>] (show_stack) from [<c0116db4>] (panic+0xe8/0x2e4)
[    1.508529] [<c0116db4>] (panic) from [<c090129c>] (mount_block_root+0x1ec/0x2e0)
[    1.516006] [<c090129c>] (mount_block_root) from [<c09016bc>] (prepare_namespace+0x158/0x1b8)
[    1.524536] [<c09016bc>] (prepare_namespace) from [<c065a670>] (kernel_init+0x8/0x110)
[    1.532452] [<c065a670>] (kernel_init) from [<c01010e0>] (ret_from_fork+0x14/0x34)
[    1.540000] Exception stack(0xc1831fb0 to 0xc1831ff8)
[    1.545051] 1fa0:                                     00000000 00000000 00000000 00000000
[    1.553218] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    1.561382] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    1.567993] Rebooting in 5 seconds..
[    7.547227] Reboot failed -- System halted

博主好,请问我这个好像是没有识别到mtd这个是啥原因,MTD有打开的
CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y
CONFIG_FTL=y
CONFIG_RFD_FTL=y
CONFIG_MTD_SWAP=y

试一下这个:
观察启动log,发现,卡住的地方,有一条记录:  #0: Loopback 1
    再次进入配置界面:make ARCH=arm menuconfig
    Device Drivers  --->Block devices  --->
        [v]Loopback device support,勾选,看到其他有的选项,也勾上吧,相信也无妨......
上门有这个错误记录,回去看看。不知道是否为这个原因。

#397 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-05-17 11:42:21

郝好小小 说:

系统启动了,但是发现f1c200s,没有网口,没有usb,持续观望学习中。

看第二篇文章 https://whycan.cn/t_4266.html

#399 Re: Nuvoton N32905/N32926/NUC972/N9H20/N9H26/N9H30 » 网友 @19697805 作品 基于NUC972 的 FreeRTOS + emwin » 2020-05-16 14:37:22

Leon 说:

新塘有点贵。小厂不合适。

新唐不贵了,小厂不用二十多,自带64MB DRAM的的NUC972,你还想怎么样,难道用四十多的STM32H743再挂一个SDRAM?
不过缺点还是存在的。某些外设的速度可能没有单片机响应快,某些场合不适合。

#400 Re: Nuvoton N32905/N32926/NUC972/N9H20/N9H26/N9H30 » step by step 全志 f1c100s MDK 裸奔各种外设(参考N3290x) » 2020-05-16 14:19:35

kq851211 说:

哪位大神能否解释下为什么sram地址是0?文档上0地址不是BROM吗?

    全志F1C100s这款芯片是ARM926内核,通过学习其启动流程,可以知道bootloader的原理。可是由于资料的缺少,以至于,我对于它的启动流程,也只是猜测,并未发现有比较严格的描述。因此对于这个芯片的启动流程,任何回答,我认为都不严谨,但是不影响我们对其进行学习和开发。这部分,比较难以描述清楚,只能通过提问-回答的方式来描述。
(1)芯片上电后,做什么事情呢?
    F1C100s上电后,芯片内部接通BROM,执行BROM里的程序。
==>BROM里的程序做什么事情呢?
    ①检查SDIO接口挂接的存储器是否存在有效魔术头。存在,则根据魔术头加载此存储器的程序,并执行。否则执行下一步。
    ②检查SPI接口挂接的存储器是否存在有效魔术头。存在,则根据魔术头加载此存储器的程序,并执行。否则执行下一步。
    ③检测不到有有效程序,芯片就进入FEL模式。
==>魔术头是什么呢?
    魔术头应该是96字节的一组数据,里面描述了用于SPL相关信息,用于给BROM识别存储器是否存在有效程序。其中包含了,程序的体积,运行地址,等数据。
==>FEL模式是什么呢?
进入FEL模式,我们可以使用软件sunxi-tools通过USB给芯片下载程序到flash等存储器中。
==>芯片如何跳转到用户程序入口呢?
    根据本教程对此问题作答,BROM识别到SPI Flash存在有效程序后,会根据魔术头的内容加载SPI Flash里的数据,到芯片的SRAM0中。
    注意,这一块SRAM0位于0X00000000地址处,与BROM地址重合,在BROM启动加载代码时,BROM已经失效。也就是说,我们的程序是无法访问BROM的,只能访问BROM失效后的,并且地址与BROM重合的SRAM0。加载完之后,跳转执行。跳转到什么地方执行?不知道,理论上是0X00000000地址,然后执行复位异常的代码。
    由于SRAM0的空间有效,非常小,应该只有45KB左右(理论上是32KB,但是经过测试,可以用45KB)。所以,加载进SRAM0的代码需要负责把体积大的程序复制到DRAM里面,然后跳转过去执行。
    这个流程描述的非常模糊,可以这样表示:
    ·BROM里的程序负责加载bootloader到SRAM0,然后跳转执行。
    ·bootloader程序负责加载APP到DRAM,然后跳转执行。
    有可能APP的体积非常大,加载过程很久,所以可以在加载APP之前,显示产品Logo。

#402 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2020-05-14 22:27:23

name272 说:

请问,编译主线linux时的工具链,跟rootfs有啥区别。为啥混用会有问题?

buildroot生成的根文件系统是用什么工具链,你的应用就应该用什么工具链。这样省事。

#404 Re: 全志 SOC » 求大佬帮我看一下自制F1C200S小板子 » 2020-05-11 10:01:58

Blueskull 说:

CH340看需求啦,我一般喜欢用小封装的,CH340没有QFN3*3或者4*4的。

可以直接使用CH340E,很小

#405 Re: 全志 SOC » 求大佬帮我看一下自制F1C200S小板子 » 2020-05-11 09:57:41

Blueskull 说:

1. 2.8v干什么用了?
2. vra/vrb不需要复杂的退耦网络。1uf电容怼到地即可,如果你不需要tvout的话。
3. esp系列芯片输出阻抗不一定是50欧,需要加补偿网络调到50欧才能进同轴线。
4. 为啥vcc直接进tvout供电了?5v直接进芯片会炸机。
5. 为啥2.5v和1.2v稳压器的输入是3.3v而不是vcc?除非你特别计算过,一般来讲二次转换只会增加损耗。
6. 你的屏幕自带升压?不带的话你的vcc不能直接怼进去,要加横流升压电路的。
7. svref分压器为啥搞两个?
8. 为啥你的reset是从2.5v分出来的?reset电平应该是vccio电平,也就是3.3v。而且你的电容太大了,换0.1uf。
9. 16MHz晶振的话你要改好多代码。现在成品的bsp都是按照24MHz适配的。
10. NAND SPI可以用uboot,但是rtt和XBoot没有适配,fel也要改。自求多福。
11. CP2102电路看手册。nrst应该上拉,vdd,vregin,vbus在bus powered,外置稳压器模式应该都接3.3v。

复制粘贴电路的时候一定要先理解再做,要不然早晚要出事。顺便,你导出来的protel格式altium打不开。
顺便说个题外话,这个芯片的2.5v和3.3v需求不是很大。如果不考虑wifi的话2.5v和3.3v完全可以上LDO。1.1V必须上DC/DC。

复制粘贴电路的时候只能中午做,因为早晚会出问题。

#407 Re: 全志 SOC » 请教一下:两片F1C 之间高速通信如何弄? » 2020-05-06 09:47:30

村民 说:

简单的是应该是串口,10M的波特率无压力。貌似全志的SPI slave一次性只能发64字节,发完就得停下来填fifo,很费事,整天的速度提不起来。而且spi master从slave读数据时,slave端会还会收到大量的垃圾数据

10M的波特率,你确定没用错词吗

#409 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-05-05 17:06:23

zhangxm_0701 说:

请教个问题,开发环境是在linux下好配置,还是在windows下好配置?

我是这样做的,开发linux应用,linux下开启Samba,然后在win下使用网络映射驱动器,直接source insight 编辑编辑代码,然后使用终端远程linux编译。编译完,在win下烧录。

也就是说,linux只负责编译。win下负责代码编写和烧录。

如果开发裸机,可以直接在win下使用keil开发。

#410 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-05-05 10:53:40

jiangshan00000 说:

请教个问题,开发环境是在linux下好配置,还是在windows下好配置?

都可以的,我是使用linux开启samba,然后在win下烧录。

#411 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-05-05 10:53:00

wenunit 说:

求一个VMware的安装好的Nano镜像,用了十几年的单片机,发现linux是白的不能再白了,没安装成功。

配置好的VM虚拟机Ubuntu系统 链接:https://pan.baidu.com/s/17vk0_QWRNRuxwi5EZ_P-Xg 提取码:54pb

#412 Re: 全志 SOC » 自制F1C100S核心板 (开源PCB) » 2020-05-05 10:49:31

我记得有人说过一句话,我说出来,你们别打我。"兄弟你家是卖电感了吧......"
不过板子真的很漂亮。

#413 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2020-05-02 15:45:08

感谢万能的坑友,我搜索了一下,buildroot中确实有这个功能,可以通过搜索lrzsz,找到了它位于这个目录中:
Target packages  --->
         Networking applications  --->
                 [v] lrzsz
勾选之后,编译,根文件系统中就有这个工具了。

#414 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-05-02 15:27:51

andrewchen175 说:

这才是我开始的地方,一路顺风

good luck!

#415 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2020-05-02 15:26:27

jiangming1399 说:

既然用了buildroot,为啥不直接打开这个功能编译呢……

(我个人是喜欢用dropbear来ssh连接到电脑的,只需要设置usb gadget网卡就可以了)

没找着...有空搜索一下看看,(/笑)

#416 Re: 全志 SOC » 尝试从一开发F1C100s应用 » 2020-05-02 11:45:33

kekemuyu 说:

很多终端工具都支持X/Z modem,很稳定。开发人员使用起来也算方便。

#417 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-05-01 16:40:24

willX 说:

系统启动了,但是发现f1c200s暂时成了一个孤岛,没有网口,没有usb,
大家是怎么把测试软件、文件上传到正在f1c200s里运行的文件系统里的?

解决你的孤岛问题:https://whycan.cn/t_4266.html

#419 全志 SOC » 尝试从一开发F1C100s应用 » 2020-05-01 16:18:59

LinjieGuo
回复: 65

尝试从一开发F1C100s应用
    既然尝试从零构建F1C100s开发环境成功,我们便开始开发这个神奇的芯片吧。
在这之前,我们写了一个hello程序,我们是怎么装进文件系统里的呢?拷贝到根文件系统,与uboot,内核打包在一起,然后烧写。显然,这样子影响flash寿命不说,肯定大大的减少了我们的开发效率。所以我们不得不采取一种高效的措施,将文件传输到我们的目标板中。
    废话不多说,随意概括一下,本贴将包含了以下内容:
1、终端传文件给linux


注意,本贴禁止回复"mark"!

注意,本贴禁止回复"mark"!

注意,本贴禁止回复"mark"!

----------------------------------------
1、使用终端传文件给linux
    目标板与外界传文件的方法非多,但是其他方法(NFS启动、wifi传输等),对于我们现在从零构建的工程基础,显然,非常不现实。经过多方面的考虑,最终,选择使用已经能够成功控制单板的串口终端来传输文件。
    网上有一个工具,lrzsz,我们可以获取其源码,编译到目标板中。
(1)获取资源
①lrzsz源码:https://whycan.cn/files/members/1845/lrzsz-0_12_20_tar.gz
②终端工具:https://whycan.cn/files/members/1845/SecureCRT.zip
(2)编译这个lrzsz
①新建一个目录存放这个包
mkdir /home/book/f1c100s/lrzsz
②自己想办法将下载到的lrzsz-0_12_20_tar.gz上传到/home/book/f1c100s/lrzsz目录下。
③进入该目录并解压lrzsz包

cd /home/book/f1c100s/lrzsz
tar -xzvf lrzsz-0_12_20_tar.gz

④进入解压出来的目录

cd lrzsz-0.12.20/

⑤输入一下命令生成配置文件

./configure --cache=arm-linux

⑥明确自己交叉编译工具链的位置
我们使用buildroot输出的交叉编译工具链,与根文件系统一致。我的编译器的目录位于这个路径:
/home/book/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc
⑦使用这个交叉编译工具链,编译它

make CC=/home/book/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc

编译出来,生成了两个文件,复制这两个文件到我们的根文件系统bin目录下

sudo cp ./src/lsz /home/book/f1c100s/rootfs/bin/
sudo cp ./src/lrz /home/book/f1c100s/rootfs/bin/

⑧看看我们有没有缺少什么运行库
==>检查第1个文件

/home/book/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-readelf -d ./src/lsz

可以看到,这个程序依赖于这样的运行库
  标记        类型                         名称/值
0x00000001 (NEEDED)                     共享库:[libc.so.0]
==>检查第2个文件

/home/book/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-readelf -d ./src/lrz

发现依赖库跟第一个一样。
⑨复制依赖库,到根文件系统的lib目录下。
那么问题来了,依赖库放在哪里呢?我们在交叉编译工具链哪里搜索一下:

cd /home/book/f1c100s/buildroot-2017.08/output/host/
find -name "libc.so.0"

结果如下:
./arm-buildroot-linux-uclibcgnueabi/sysroot/lib/libc.so.0

复制这个库文件到根文件目录lib中,

sudo cp /home/book/f1c100s/buildroot-2017.08/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/lib/libc.so.0 /home/book/f1c100s/rootfs/lib/

⑩打包并烧写镜像。

sudo sh /home/book/f1c100s/BuildMyImage.sh

(3)使用这个工具
使用串口CRT工具连接终端,输入命令"lrz",回车,CRT会弹出一个框框,我们可以发送一个文件到目标板
上个图就好了,自己折腾吧。速度有点慢,聊胜于无。(/笑)
Trans

#420 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-05-01 14:39:06

kq851211 说:

请问全志是怎么回事,官网上什么技术资料都找不到,找全志的开发资料好难呀

应该是为了保护代理商的利益吧,随便公开资料,很容易出现劣币 驱逐良币的情况。

#421 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-04-30 21:55:58

Space 说:

大佬有没有RTT的教程呢?

RTT教程没有,但是开源加群交流,QQ群686338051
不是我的群,加不进不关我事喔。
不过其实很简单。开发流程是这样:
(1)下载ENV并安装,参考链接如下:
①ENV使用教程:
https://www.rt-thread.org/page/video.html
②ENV下载:
https://www.rt-thread.org/page/download.html
自己进去找,很容易找到的。
(2)下载RTT官方源码:
①官方下载页:
https://www.rt-thread.org/page/download.html
②git页面:
https://github.com/RT-Thread/rt-thread
   使用歪朵拉的加速服务下载git:
https://g.widora.cn/
(3)直接在win下解压RTT,使用ENV进入RTT_3_1_3\bsp\allwinner_tina\
(4)输入scons进行编译。(注意,只能直接编译,不能像STM32一样建议keil工程)
(5)其余自行参考这个帖子的最终结果。
https://whycan.cn/t_3877.html

#422 Re: 全志 SOC » 尝试使用Ubuntu20.04从零构建Licheepi V3s Zero的SPI Flash系统镜像(32M) » 2020-04-23 21:26:45

ifree64 说:

big_smile 其实我就是根你学的,不好意思侵权了。

没有啊,过来支持一下,哈哈。加油。

#423 Re: 全志 SOC » 尝试使用Ubuntu20.04从零构建Licheepi V3s Zero的SPI Flash系统镜像(32M) » 2020-04-23 15:59:01

我,你这个标题,我怎么感觉这么熟悉呢?感谢分享,/笑。

#425 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-04-19 18:16:31

lignin 说:

我也想玩F1C100S了,正在找相关原理图看看怎么设计,支持楼主

直接买一个荔枝派回来就可以了。不用费劲。先搞定功能再去自己画板

#429 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » LittleVGL VS2019 仿真安装教程 » 2020-04-16 11:33:14

晕哥 说:

创建SDL窗口(模拟器)那个函数里面的长宽, 与你上面那个窗口的长宽一致, 就没有黑窗口了.

找到了一种方法,不知道哪位大神尝试一下:
https://blog.csdn.net/hjl240/article/details/47857175

#430 Re: 全志 SOC » 请教windows下linux编译环境搭建 » 2020-04-16 09:36:57

aoyou 说:

搞了10几年的嵌入式,一直用keil mdk,完全不懂linux环境搭建,请教大家怎么搭建,用什么编译软件最流行?不知道使用uos系统主机是否方便些?感谢!

可以看看我发的帖子,使用linux开发ARM linux的流程大概就这样,不过缺少了app的环节。但勉强可以入口。

尝试从零搭建f1c100s开发环境

#431 Re: 全志 SOC » 试一试 Ubuntu 18.04 编译f1c200s tina 3.x » 2020-04-15 12:14:46

找到原因了,不能再NTFS格式的文件系统下编译,否则会出现上面情况

#432 Re: 全志 SOC » 试一试 Ubuntu 18.04 编译f1c200s tina 3.x » 2020-04-14 14:57:28

编译的结果是这样的:
FluxBB make_result 测试
输入pack指令,出现这种情况。
FluxBB Error_pack 测试
进去发现,根本就找不到lichee/linux-3.10/arch/arm/boot/dts/.sun3iw1p1-violin-F1C200s.dtb.dts.tmp文件
请问如何解决呢?

#435 Re: 8051/STC8/AT89C51/N76E003 » 【愚人千虑】C51 编程中的常见陷阱 » 2020-04-12 11:30:24

尽量不要使用51吧,问题太多了。只能避免,不能解决

#436 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 和大家聊聊最近学linux驱动的感受 » 2020-04-12 01:09:55

iki1120 说:

直接面向CV编程,内核里面的例子拿来修改就好了,不用从头开始写

被你说的这么高大上。

#437 Re: 全志 SOC » 新手入门,串口求助 » 2020-04-09 12:24:37

什么环境,什么平台,实现什么功能,遇到什么问题?

#447 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-03-29 23:40:26

kaixxss 说:

按照步骤试了 还是不行
https://whycan.cn/files/members/2435/qqq.png

基本操作呢,可以关掉杀毒软件再试试,不行就换个电脑试试。

#448 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-03-29 14:29:10

下载 sunxi-tools-win32support_f1c100s(20180329).7z,解压缩, 运行 zadig-2.3.exe

点击 Options -> List All Devices:(即使你的设备显示未识别设备也可以,只要装上驱动能下载就可以了)

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

选择 WinUSB (v6.1.7600.16385)
点击 【Install WCID Driver】

https://whycan.cn/files/members/3/QQ20180416161712.png
按上面步奏装好驱动

https://whycan.cn/files/members/3/QQ20180416161717.png
装完后,sunxi-fel.exe 运行一切正常。

接下来烧录一个spi flash试一试。

#449 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-03-29 12:23:33

kaixxss 说:

按照操作短接了1 4脚 怎么找不到设备呀 上电的时候看设备管理器也不会刷新 是不是硬件有问题

这是芯片本身的机制,检测到SPI Flash,SD卡,没有程序,就会进入FEL模式,FlashCS引脚接地,就是为了屏蔽SPI flash。

#452 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-03-28 09:02:41

IT界吴彦祖 说:

楼主写的非常详细,对新手很友好,新手难得的教程

兄弟,你这ID很狂啊

#454 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » LittleVGL VS2019 仿真安装教程 » 2020-03-27 10:30:18

VS2017打开表示无法编译。处理方案:
(1)关闭工程,删除工程项目下隐藏的".vs"文件夹
(2)修改项目属性:项目--XX属性--常规
①修改windowsSDK版本:10.0.17763.0
②平台工具集:V141(VS2017不支持V142,VS2019才支持V142)
重新编译,运行,效果如下:
FluxBB bbcode png

SDL黑色控制台有些碍事,不知道如何去掉

#455 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-03-25 10:09:01

willX 说:

麻烦请问,更新了dts之后,使用make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- dtbs -j4
始终无法在arch/arm/boot/dts/下生成suniv-f1c100s-licheepi-nano.dts

为了保证dts是新生成的,我将旧的suniv-f1c100s-licheepi-nano.dts删除了,使用make命令再也无法生成dts了。
折腾了两天了,感谢大神帮助。

把提示截屏放上来看看。

#457 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 串口文件管理器(包括客户端和服务端) » 2020-03-22 09:38:05

kekemuyu 说:

旧的软件真的不太好,需要重构。希望做成跟操作系统高度融合的模式,可以将外部存储通过串口,网口等任何通讯口挂在到本地系统,像浏览本地文件一样操作外部存储。有几个难点还没搞定

精神上支持你。/坏笑

#459 Re: 全志 SOC » 自制F1C200s+WiFi模块小板,请各位大神帮我审核一下原理图有没有什么致命问题 » 2020-03-21 23:26:35

wwng 说:

TV部分使用3.3v应该问题不大,我担心的是VRA1和VRA2悬空会不会带来一些未知的问题?

我已经这样干过了,暂时没有发现问题,裸机正常,linux也跑起来了。只是实验板,没有商用,我认为不接也没有问题。

#460 Re: 全志 SOC » 自制F1C200s+WiFi模块小板,请各位大神帮我审核一下原理图有没有什么致命问题 » 2020-03-21 22:54:35

wwng 说:

如题,主要担心的是TV部分供电我没给,会不会出啥问题?请有经验的大佬指点一下,不胜感激。

原理图:F1C200S.pdf

粗略看了一下,TV部分电源使用3.3V了。你指的是TV部分电源不像其他人一样使用3.0V吗?

#461 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-03-21 22:43:28

MK-2020 说:

感谢LinjieGuo分享,我是一个超级新手,以前全在windows上开发没怎么接触linux,最近画了个F1c200s想跟下linux,刚好过来跟楼主学一学。弄了两天终于把U-boot、linux-f1c100s-480272lcd-test和buildroot-2017.08三个编译完成。我PCB板上用的是32M的(w25q32),想问一下是不是把suniv-f1c100s-licheepi-nano.dts里配置为w25q32重新编译就可以?https://whycan.cn/files/members/2850/none.png

引用晕哥的话:"不用修改,驱动检测flash id自动识别容量!"

#462 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-03-10 23:49:52

王佳伟 说:

谢谢楼主的分享,很详细。但是我在编译make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4的时候出现了
binman: Node '/binman/u-boot-img': Entry contents size is 0xa6fa9 (683945) but entry size is 0x7e000 (516096)
Makefile:1148: recipe for target 'u-boot-sunxi-with-spl.bin' failed
make: *** [u-boot-sunxi-with-spl.bin] Error 1
这个错误。我也不知道是什么原因,是之前配置可视化出错了吗?

你去打开Makefile文件,看看1148行驶什么内容呢

#463 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-03-10 10:10:52

ghosoft 说:

编译根文件系统时候遇到问题了,   没想好怎么解决,   因为apt安装不了4.12版本的linux-header,  我是在ubuntu18.04的虚拟机中尝试编译的

zt@ubuntu:~/buildroot$ make
>>> linux-headers custom Installing to staging directory
(cd /home/zt/buildroot/output/build/linux-headers-custom; PATH="/home/zt/buildroot/output/host/bin:/home/zt/buildroot/output/host/sbin:/home/zt/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/zt/crosstool-ng:/home/zt/LicheePi/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin" /usr/bin/make -j5 ARCH=arm HOSTCC="/usr/bin/gcc" HOSTCFLAGS="" HOSTCXX="/usr/bin/g++" INSTALL_HDR_PATH=/home/zt/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr headers_install)
make[1]: Entering directory '/home/zt/buildroot/output/build/linux-headers-custom'
make[1]: Leaving directory '/home/zt/buildroot/output/build/linux-headers-custom'
if ! support/scripts/check-kernel-headers.sh  /home/zt/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot  4.12; then exit 1; fi
Incorrect selection of kernel headers: expected 4.12.x, got 4.19.x
package/pkg-generic.mk:266: recipe for target '/home/zt/buildroot/output/build/linux-headers-custom/.stamp_staging_installed' failed
make: *** [/home/zt/buildroot/output/build/linux-headers-custom/.stamp_staging_installed] Error 1

恐怕让您失望了,我也不知道这是什么情况!/无奈

#464 Re: Nuvoton N32905/N32926/NUC972/N9H20/N9H26/N9H30 » NUC980 + SPI-NAND,为什么一定要使用 uboot-spl » 2020-03-03 13:55:45

因为Nand工艺问题,存在坏块,但是开头那一块肯定是好的。用于存储spl程序,SPL程序负责坏块处理以及加载uboot。

#470 Re: 全志 SOC » 发现淘宝有卖F1C100S源码的 » 2020-01-16 09:37:49

thwin520 说:

关键是启动部分啊,大哥,能给点信息不,我们可以分担下成本啊。

启动流程部分,年后我写个文章,一千五确实不贵,我个人学习也买了,店主人很好,但是这么庞大的代码,别人整理不容易,希望全款购买。

#474 Re: 华芯微特 » 从零开发SWM181之----构建裸机控制台框架 [收到来自华芯微特--韬哥的SWM181CBT6开发板] » 2020-01-13 20:17:22

======================================================
经过了上面的折腾,我们完成了这么多事情:
(1)设置CPU工作时钟
(2)使用GPIO
(3)使用串口
(4)使用中断
(5)使用系统定时器
      那么,我们就利用这些外设,编写一个类似命令行一样的工程框架,用于调试项目吧。
======================================================
放出工程:Framework_V1.0.7z
(因代码写得乱,移植可能有些困难,有其他平台需要移植的可以联系我,如果哪位朋友优化好结构,希望也可以分享出来)
如果是使用同样的芯片,可以不关注控制台的实现,直接使用lib工程:
Framework_V1.0_lib.7z
测试:
(1)连接串口线
GPA0配置为RX-->连接官方开发板子上面上面丝印RX
GPA1配置为TX-->连接官方开发板子上面上面丝印TX
(2)连接LED线
GPA5-->LED

(1)打开putty,使用串口打开设备,给板子上电。可以看到如下图:
FluxBB bbcode 测试
(2)输入help,回车:
FluxBB bbcode 测试
(3)使用LED
(可以使用TAB补全指令,使用上方向键回到上一条指令)
①输入LedGPA5 con:配置LED IO
②输入LedGPA5 on:点亮板子上面的LED
③输入LedGPA5 off:熄灭板子上面的LED
④输入LedGPA5 cat:查看LED的情况
上图:
FluxBB bbcode 测试

#475 Re: 华芯微特 » 从零开发SWM181之----构建裸机控制台框架 [收到来自华芯微特--韬哥的SWM181CBT6开发板] » 2020-01-13 15:59:25

基本框架已经定好了,忽然觉得24MHz是否有点慢了,修改工作频率,只需要修改这行代码即可。

#define SYS_CLK   	SYS_CLK_48MHz

然后官方的库函数会帮我们进行时钟初始化。
切记,千万不要修改下面三个宏,这三个宏,应该是定死的参数,官方库函数用的,如果变动,可能很多地方需要修改。

/*以下三个参数应该是不需要修改的,作为掩码一样使用,勿动*/
#define __HSI		(24000000UL)		//高速内部时钟
#define __LSI		(   32000UL)		//低速内部时钟
#define __HSE		(24000000UL)		//高速外部时钟

#476 Re: 华芯微特 » 从零开发SWM181之----构建裸机控制台框架 [收到来自华芯微特--韬哥的SWM181CBT6开发板] » 2020-01-13 12:52:41

串口的大概就是这样子了,一个单片机控制系统开发应该需要有一个时间基准,我们现在看看定时器怎么使用。
通过手册可以看出,SWM181内部的定时器情况应该如下:
①1个24位系统滴答定时器
②4个通用32位定时器
③一个32位计数器
-----------------------------------------------------------------
        按老套路来走,定时器的使用流程,一般是这样:
(1)设置定时器内部计数器的时钟源
(2)设置计数器的计数方式:自加/自减
(3)设置计数器的装载缓冲器(初值):
(4)使能溢出(自加)/置零(自减)中断
(5)使能定时器运行
-----------------------------------------------------------------
看看官方例程代码是怎么初始化系统滴答定时器的:
官方的库函数配置方法就一行代码:

SysTick_Config(SystemCoreClock/4);			//每0.25秒钟触发一次中断

对应的系统滴答定时器中断代码,只需要写成以下格式便可:

void SysTick_Handler(void)
{	
	//代码
}

-----------------------------------------------------------------
问:上面这行代码为什么这样配置就可以得到"每0.25s触发一次中断"的效果呢?
        我们需要了解系统滴答定时器的输入时钟源是什么?系统滴答定时器位于M0架构内部,跟我们这款MCU的外设设计无关,想要知道具体情况,应该翻阅M0架构的相关文档。暂且不做讨论。
我们追踪代码可以得知:

#define __HSI		(24000000UL)		//高速内部时钟
uint32_t SystemCoreClock  = __HSI;
SysTick_Config(SystemCoreClock/4);          //每0.25秒钟触发一次中断
__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
{
  if ((ticks - 1) > SysTick_LOAD_RELOAD_Msk)  return (1);      /* Reload value impossible */

  SysTick->LOAD  = ticks - 1;                                  /* set reload register */
  NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);  /* set Priority for Systick Interrupt */
  SysTick->VAL   = 0;                                          /* Load the SysTick Counter Value */
  SysTick->CTRL  = SysTick_CTRL_CLKSOURCE_Msk |
                   SysTick_CTRL_TICKINT_Msk   |
                   SysTick_CTRL_ENABLE_Msk;                    /* Enable SysTick IRQ and SysTick Timer */
  return (0);                                                  /* Function successful */
}

从代码可以看出,ticks就是定时器初值。
而且翻阅手册,得知:SysTick定时器是一个24位自减定时器。
我们只需要将(SystemCoreClock/4)再除以250,应该就可以将系统滴答定时器,配置为1ms触发一次中断。代码如下:

SysTick_Config(SystemCoreClock/4/250);			//每1ms钟触发一次中断

中断服务程序里面放一个变量累加:

u32 gSysTick=0;       //32位可以描述49天,若非项目要求,推荐使用32位,效率较高
void SysTick_Handler(void)
{	
        gSysTick++;        	
}

编写一个函数用于获取系统滴答值。

#define SysTick_t  u64
SysTick_t GetSysTick(void)
{
	SysTick_t temp=0;
	/*关中断*/
	SysTick->CTRL &= ~(1<<1); 
	temp = gSysTick;
	/*开中断*/
	SysTick->CTRL |=  (1<<1);
	return temp;
}

定义一下系统滴答的参数结构:

typedef struct{
	SysTick_t Diff;      //时间差
	SysTick_t Old;      //旧的滴答值
	SysTick_t New;    //新的滴答值
}TimeOut_t;

某些平台申请的变量,默认值非0,我们编写一个函数用于初始化这个结构。

/*--初始化软超时结构---------------------*/
void TimeOutArgsInit(TimeOut_t *tTimeOut)
{
	tTimeOut->Diff = 0;
	tTimeOut->New = 0;
	tTimeOut->Old = 0;
}

这种结构,在使用单片机写裸机状态机程序时,非常好用。结构分明,具体后面再说。
-------------------------------------------------------------------------------------

#477 Re: 华芯微特 » 从零开发SWM181之----构建裸机控制台框架 [收到来自华芯微特--韬哥的SWM181CBT6开发板] » 2020-01-13 10:57:04

知道了中断的原理,那么,怎么开中断,怎么安装中断向量呢?
(1)使能外设中断
        不同的外设拥有不同的中断,具体情况看对应外设的寄存器。
(2)编写中断服务函数
IRQ中断一共有32个,分别是IRQ0~IRQ31。以IRQ0为例:

void IRQ0_Handler(void)
{
        //此处添加代码(判断中断标志,并处理)
}

(3)连接中断服务函数
①配置IRQ的中断源
②设置其优先级
③使能该中断
        这三步操作,官方已经实现了操作库,以串口为例:
        IRQ_Connect(IRQ0_15_UART0, IRQ0_IRQ, 1);
        这样就能将串口0的中断连接到IRQ0,并且将其优先级设置为1。(优先级可设置为0~3,其中0为最高优先级)
---------------------------------------------------------------------------------------------------------------------------
       以串口0为例,我们使能其接收中断,然后在中断中将接收的数据写入缓冲区。
       SWM181的串口外设寄存器跟其他的芯片有一点点不一样,但是我们按照常规的方式来操作,便能找到共同点:
(1)使能外设时钟
(2)使能IO口时钟
(3)配置引脚功能
(4)配置串口通讯格式:波特率、数据位、停止位、校验位等...
(5)使能发送功能/接收功能
(6)使能发送中断/接收中断
(7)使能串口外设
--------------------------------------------------------
(1)按照上面这种流程去初始化串口,代码如下:
FluxBB bbcode 测试
(2)编写中断服务函数:

void __irqUart0_RX(void)
{
	u32 dat;
	/*--接收中断或接收超时中断--*/
	if(UART_INTRXThresholdStat(UART0) || UART_INTTimeoutStat(UART0))    //串口接收FIFO中断或者接收超时中断
	{
		while(UART_IsRXFIFOEmpty(UART0) == 0)                                    //FIFO非空则不断提取数据
		{
			if(UART_ReadByte(UART0, &dat) == 0)                         //提取一个数据                                 
			{
				printf("%c \r\n",dat);                                         //将提取到得数据打印出来
				
			}
		}
	}
}

#478 Re: 华芯微特 » 从零开发SWM181之----构建裸机控制台框架 [收到来自华芯微特--韬哥的SWM181CBT6开发板] » 2020-01-11 18:51:03

既然串口能够发送数据,现在尝试使用串口来接收数据。串口接收数据使用中断方式,那么就要搞懂这款芯片的中断是怎么管理的。
我们一般写程序需要用到的是IRQ异常,也就是中断请求。从启动文件上看,异常向量表里面有32个IRQ异常向量,命名规则为IRQx_Handler(x=0~31)。
一般中断的流程如下:
外设产生中断-->中断管理器-->CPU
(1)外设产生中断
        这款芯片能产生中断的外设有那些呢?
        手册上面有个表,上面列举了非常的中断号,不知道怎么用,但是大概能回答本问题。
        GPIO、PWM_HALT、IIC0、IIC1、WDT、ADC0、BOD、TIMER_PULSE、DMA、
        CACHE、Flash、CAN、CMP、ADC1、HALL、UART0~3、PWM_CH0~3等等...
(2)中断管理器
        这款芯片的中断管理器怎么管理外设产生的中断信号呢?
        这款芯片的IRQx_Handler(x=0~31)异常向量,默认是不指定中断源的,需要我们配置它的中断信号来源。
        ①IRQ0~15的中断源可用来源于下表的任意一项。
FluxBB bbcode 测试
        ②IRQ16~31的中断源可用来源于下表的任意1项或者2项(注意:可用配置2项)
FluxBB bbcode 测试
        怎么配置一个IRQ指向的是什么源呢?
        还是看图,中断源的选择应该是由一个多路选择开关来决定的。
        对于IRQ0~15,由IRQx_SRC 寄存器的bit[6:0]选择一个中断源:
FluxBB bbcode 测试
        对于IQR16~31,可由IRQx_SRC 寄存器的bit[4:0]选择中断源1,bit[9:5]选择中断源2,可用配置2个中断源:
FluxBB bbcode 测试
       
(3)CPU处理中断事件
        CPU接收到中断信号(异常信号),自动跳转到对应的异常向量处执行代码(异常向量实际上就是一条跳转指令)

#479 Re: 华芯微特 » 从零开发SWM181之----构建裸机控制台框架 [收到来自华芯微特--韬哥的SWM181CBT6开发板] » 2020-01-11 18:35:04

LinjieGuo 说:

PA0(RX)-->TX
PA1(TX)-->RX

程序下载进去之后,串口调试助手上面没有任何数据,将2根线反过来,可用看到数据,说明上面这个接法是错的,应该修正为:
PA0(RX)-->RX
PA1(TX)-->TX
(此接法对应开发板上面的丝印,并非是芯片引脚的标识)

#480 Re: 华芯微特 » 从零开发SWM181之----构建裸机控制台框架 [收到来自华芯微特--韬哥的SWM181CBT6开发板] » 2020-01-11 16:15:06

感谢@xiaohui的回复,下载https://whycan.cn/files/members/1390/Synwit_JFLASH-190304.rar的内容,解压后,复制到./Keil/ARM/Flash中,然后直接使用Keil下载程序,下载之前的点灯程序,成功点灯。目录如下:
FluxBB bbcode 测试

#481 Re: 华芯微特 » 从零开发SWM181之----构建裸机控制台框架 [收到来自华芯微特--韬哥的SWM181CBT6开发板] » 2020-01-11 15:40:38

刚刚想用keil直接下载程序,便按官方教程,修改Jflash中的相关文件,但是keil还是无法下载,还是要使用官方的Jlink下载软件。
写好串口的程序,下载进去。
芯片没有任何反应。下载之前的点灯程序,按下按键,依然没有任何反应。
芯片似乎挂掉了,可能是由以下原因导致,
①按照官方的教程中修改Jlink的Device.xml文件(重装Jlink,没有解决问题,排除!)
②CH340G IO无法直连MCU IO导致芯片不正常,
③使用了下载软件的校验功能,虽然没有成功过,可能影响了内部的数据
④使用keil下载,虽然下载失败,可能影响了内部的数据
反正现在情况就是显示下载成功,但是没有出现想要的实验现象,具体原因未知。
FluxBB bbcode 测试
使用下载软件的校验功能,校验结果说不一致,到底是什么原因呢?
FluxBB bbcode 测试

#482 Re: 华芯微特 » 从零开发SWM181之----构建裸机控制台框架 [收到来自华芯微特--韬哥的SWM181CBT6开发板] » 2020-01-11 15:15:24

尝试使用串口通讯进行通讯,我在原理图上面怎么找都找不到串口引脚。
翻查数据手册,发现并没有特定的串口引脚,芯片内部有一个神奇的数字信号引脚分配器——>PORTCON。
对于部分数字输入输出功能,可以配置到任意 I/O 引脚,以方便板级布局。包括如下功能:
 UARTn_TX           UARTn_RX
 I2Cn_SDA           I2Cn_CLK
 PWMx_OUT         PWM_BREAK
 COUNTERn_IN     CAPTURE_IN
 CAN_RX              CAN_TX
怎么用呢?我们看看下面这个图应该就明白了。
FluxBB bbcode 测试
意思是可用把上面列出来的数字类型引脚分配到任意的带FUNCTION功能的引脚上面。
那我们看看那些引脚是带有FUNCTION的呢?上图:
FluxBB bbcode 测试
看起来,除了电源引脚、晶振引脚、复位引脚,其余的引脚都支持配置为FUNCTION功能。
怎么配置呢?我们尽量不要关注寄存器层,直接使用官方的例程上面的库接口:
    PORT_Init(PORTA, PIN0, FUNMUX_UART0_RXD, 1);    //GPIOA.0配置为UART0输入引脚
    PORT_Init(PORTA, PIN1, FUNMUX_UART0_TXD, 0);    //GPIOA.1配置为UART0输出引脚
来到这里,终于明白为什么开发板上面CH340G的两根串口线不直连MCU了。
初始化串口,使用官方的代码,略微修改波特率为115200。

void SerialInit(void)
{
	UART_InitStructure UART_initStruct;
	
	PORT_Init(PORTA, PIN0, FUNMUX_UART0_RXD, 1);	//GPIOA.0配置为UART0输入引脚
	PORT_Init(PORTA, PIN1, FUNMUX_UART0_TXD, 0);	//GPIOA.1配置为UART0输出引脚
 	
 	UART_initStruct.Baudrate = 115200;
	UART_initStruct.DataBits = UART_DATA_8BIT;
	UART_initStruct.Parity = UART_PARITY_NONE;
	UART_initStruct.StopBits = UART_STOP_1BIT;
	UART_initStruct.RXThreshold = 3;
	UART_initStruct.RXThresholdIEn = 0;
	UART_initStruct.TXThreshold = 3;
	UART_initStruct.TXThresholdIEn = 0;
	UART_initStruct.TimeoutTime = 10;
	UART_initStruct.TimeoutIEn = 0;
 	UART_Init(UART0, &UART_initStruct);
	UART_Open(UART0);
}

        重定位编译器C库的标准输出:

int fputc(int ch, FILE *f)
{
	UART_WriteByte(UART0, ch);
	
	while(UART_IsTXBusy(UART0));
 	
	return ch;
}

        这样就能够愉快的使用printf(...)函数进行格式化打印数据了。
-----------------------------------------------------------------------------------------
直接把MCU串口引脚连接到CH340G的串口引脚上,不知道会不会烧掉
PA0(RX)-->TX
PA1(TX)-->RX

#483 Re: 华芯微特 » 从零开发SWM181之----构建裸机控制台框架 [收到来自华芯微特--韬哥的SWM181CBT6开发板] » 2020-01-11 10:41:25

CPU上电后,芯片内部自动读取存放在Flash 0地址上面的栈顶地址进而设置堆栈指针。
CPU 内部电压稳定后,发生reset异常,自动跳转到异常的处理函数中。
Reset_Handler   PROC
                EXPORT  Reset_Handler            [WEAK]
                IMPORT  __main
               
                LDR     R0, =__main
                BX     R0
                ENDP

可用看到,这里只有一种操作,那就是跳转到__main()函数里面执行了。
__main()和Main() (以前的ARM9使用ADS编写程序用到)是存在差异的,有兴趣自行百度进行科普。

------------------------------------------------------------------------------------------------------
在main()里面,首先便调用以下函数,设置芯片工作频率。

void SystemInit(void)
{
	uint32_t i;
	
	SYS->CLKEN |= (1 << SYS_CLKEN_OSC_Pos);
	
	switch(SYS_CLK)
	{
		case SYS_CLK_24MHz:			//0 内部高频24MHz RC振荡器
			if(SYS->CLKSEL & SYS_CLKSEL_SYS_Msk)	//当前时钟是高频RC,修改高频RC时钟频率时需要先切到一个稳定时钟源
			{
				switchToRC32KHz();
			}
			switchToRC24MHz();
			break;
		
		case SYS_CLK_6MHz:			//1 内部高频 6MHz RC振荡器
			if(SYS->CLKSEL & SYS_CLKSEL_SYS_Msk)	//当前时钟是高频RC,修改高频RC时钟频率时需要先切到一个稳定时钟源
			{
				switchToRC32KHz();
			}
			switchToRC6MHz();
			break;
		
		case SYS_CLK_48MHz:			//2 内部高频48MHz RC振荡器
			if(SYS->CLKSEL & SYS_CLKSEL_SYS_Msk)	//当前时钟是高频RC,修改高频RC时钟频率时需要先切到一个稳定时钟源
			{
				switchToRC32KHz();
			}
			switchToRC48MHz();
			break;
		
		case SYS_CLK_12MHz:			//3 内部高频12MHz RC振荡器
			if(SYS->CLKSEL & SYS_CLKSEL_SYS_Msk)	//当前时钟是高频RC,修改高频RC时钟频率时需要先切到一个稳定时钟源
			{
				switchToRC32KHz();
			}
			switchToRC12MHz();
			break;
		
		case SYS_CLK_32KHz:			//4 内部低频32KHz RC振荡器
			if((SYS->CLKSEL & SYS_CLKSEL_SYS_Msk) == 0)
			{
				switchToRC24MHz();
			}
			switchToRC32KHz();
			break;
		
		case SYS_CLK_XTAL:			//5 外部XTAL晶体振荡器(2-30MHz)
			if((SYS->CLKSEL & SYS_CLKSEL_SYS_Msk) == 0)
			{
				switchToRC24MHz();
			}
			switchToXTAL();
			break;
	}
	
	for(i = 0;i <10000;i++);		//等待时钟稳定。。。
	
	SystemCoreClockUpdate();
}

以上代码中,存在一条神奇的语句,可能要耗费CPU一点时间。
for(i = 0;i <10000;i++);        //等待时钟稳定。。。
MCU IO引脚上电后会存在默认高电平/低电平等情况,如果板子设计时没有考虑到这个原因导致的影响,可用在这行语句之前指定引脚状态,减少影响。
--------------------------------------------------------------------------------------------------
展开宏:#define SYS_CLK       SYS_CLK_24MHz
可用看到,官方例程里面,MCU默认工作于24MHz。
理论上,可用修改该宏定义为SYS_CLK_48MHz,将MCU工作频率设置为48MHz。但是不知道是否稳定,目前没有尝试。

#define SYS_CLK_24MHz	0	 	//0 内部高频24MHz RC振荡器
#define SYS_CLK_6MHz	1		//1 内部高频 6MHz RC振荡器									
#define SYS_CLK_48MHz	2		//2 内部高频48MHz RC振荡器									
#define SYS_CLK_12MHz	3		//3 内部高频12MHz RC振荡器									
#define SYS_CLK_32KHz	4		//4 内部低频32KHz RC振荡器									
#define SYS_CLK_XTAL	5		//5 外部XTAL晶体振荡器(2-30MHz)

#484 Re: 华芯微特 » 从零开发SWM181之----构建裸机控制台框架 [收到来自华芯微特--韬哥的SWM181CBT6开发板] » 2020-01-11 10:33:59

观察startup_xxx.s文件(启动文件),里面做了什么事情呢?
---------------------------------------------------------------------------------------------
(1)开辟栈,并使用标号__initial_sp获得栈顶。
Stack_Size          EQU     0x800;
                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem           SPACE   Stack_Size
__initial_sp
---------------------------------------------------------------------------------------------
(2)开辟堆,并使用__heap_limit获取堆的界限。
Heap_Size           EQU     0x000;
                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit
此处明显堆的大小为0,这样的话,按道理来说是无法使用C库里面的malloc()函数分配内存的。
---------------------------------------------------------------------------------------------
(3)异常向量指定:RESET段。
                AREA    RESET, DATA, READONLY
__Vectors        DCD     Stack_Mem + Stack_Size             ; Top of Stack 栈顶,等于__initial_sp
                DCD     Reset_Handler             ; Reset Handler
                DCD     NMI_Handler             ; NMI Handler
                DCD     HardFault_Handler         ; Hard Fault Handler
                DCD     0
                DCD     0
                DCD     0
                DCD     0
                DCD     0
                DCD     0
                DCD     SRAM_SWITCH
                DCD     SVC_Handler               ; SVCall Handler
                DCD     0
                DCD     0
                DCD     PendSV_Handler            ; PendSV Handler
                DCD     SysTick_Handler           ; SysTick Handler

                ; External Interrupts
                DCD     IRQ0_Handler
                DCD     IRQ1_Handler
                DCD     IRQ2_Handler
                DCD     IRQ3_Handler
                DCD     IRQ4_Handler
                DCD     IRQ5_Handler
                DCD     IRQ6_Handler
                DCD     IRQ7_Handler
                DCD     IRQ8_Handler
                DCD     IRQ9_Handler
                DCD     IRQ10_Handler
                DCD     IRQ11_Handler
                DCD     IRQ12_Handler
                DCD     IRQ13_Handler
                DCD     IRQ14_Handler
                DCD     IRQ15_Handler
                DCD     IRQ16_Handler
                DCD     IRQ17_Handler
                DCD     IRQ18_Handler
                DCD     IRQ19_Handler
                DCD     IRQ20_Handler
                DCD     IRQ21_Handler
                DCD     IRQ22_Handler
                DCD     IRQ23_Handler
                DCD     IRQ24_Handler
                DCD     IRQ25_Handler
                DCD     IRQ26_Handler
                DCD     IRQ27_Handler
                DCD     IRQ28_Handler
                DCD     IRQ29_Handler
                DCD     IRQ30_Handler
                DCD     IRQ31_Handler
__Vectors_End
---------------------------------------------------------------------------------------------
为什么这样设定?
查看sct脚本:工程目录下的输入目录里面存在一个自动生成的KeyLED.sct链接脚本。
脚本的数据来源于,Target设置,作用:指定各段存放的位置。
LR_IROM1 0x00000000 0x00006000  {    ; load region size_region
  ER_IROM1 0x00000000 0x00006000  {  ; 芯片Flash映射在0地址
   *.o (RESET, +First)                              ;指定RESET段链接到头部
   *(InRoot$$Sections)
   .ANY (+RO)
   .ANY (+XO)
  }
  RW_IRAM1 0x20000000 0x00002000  {  ; RW data
   .ANY (+RW +ZI)                                   ;变量,堆栈等链接到此处。
  }
}

因为芯片内存过小,而且这个芯片不适合扩展内存等操作,在内存管理方面便不多做介绍。

#485 Re: 华芯微特 » 从零开发SWM181之----构建裸机控制台框架 [收到来自华芯微特--韬哥的SWM181CBT6开发板] » 2020-01-09 15:38:48

尝试了解官方的工程架构,打开Keil,Target配置如下:
FluxBB bbcode 测试
我们使用的SWM181CBT6,拥有16KB SRAM,240KB Flash,所以我们可以修改一下。物尽其用。
查看数据手册上面的存储器映射表:
FluxBB bbcode 测试
填写Keil的配置(用于自动生成链接脚本)。
IROM 0X0000 0000,  0X0003 C000 ; IRAM  0X 2000 0000,0x0000 4000
上图:
FluxBB bbcode 测试
这样就能用上240KB的Flash,16KB SRAM了。

#488 Re: 华芯微特 » 从零开发SWM181之----构建裸机控制台框架 [收到来自华芯微特--韬哥的SWM181CBT6开发板] » 2020-01-09 13:01:52

------------------------------------------------------------------------------------------------
        尝试使用嵌入式点灯大法来打开这一款MCU,看看点的灯亮不亮,速度快不快。
        找到官方例程,.\GPIO\KeyLED,使用J-link上位机通用工具Synwit_Jlink_Download_Check_V1.5.exe将程序下载进MCU。
        工程文件里面有个readme.txt:功能说明:按下接在PA4上的按键,则接在PA5上的LED亮;放开按键则LED灭!
        程序下载非常成功,但是没有丝毫反应,灯似乎不亮。
        按下S2,不亮;松开,不亮。
------------------------------------------------------------------------------------------------
        仔细管擦,板子上面似乎有一些跳线位,打开原理图,一看,原来如此,MCU并没有和LED/KEY相连。
(1)使用一根杜邦线将GPA5和LED相连,
(2)使用一根杜邦线将GPA4和KEY相连。

        重启单板,按下按键S2,LED亮;松开,LED灭。
        嵌入式点灯大法施展成功。


TEST1_20200109-2016.png

#489 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-01-09 12:35:28

xiao.huang 说:

感谢@LinjieGuo
下载最新的 buildroot-2019.02.8,然后重新按上述配置就没有问题,rootfs 编出来 2MB,已经能启动到 shell 了;
接下来在想 f1c200s 能做什么呢 neutral

其实你这句话问得有些盲目了,论坛里大部分都是造轮子的资料,项目还是要按具体要求来做。自己能做什么项目呢,可用拿一个开源的项目练手。

#490 Re: 华芯微特 » 从零开发SWM181之----构建裸机控制台框架 [收到来自华芯微特--韬哥的SWM181CBT6开发板] » 2020-01-07 22:35:40

尝试使用ISP下载程序,但是官网下载的ISP程序无法成功握手连接上MCU,跟华心微特的朋友联系,ISP目前来说还未完善,所以暂时不支持,需要使用J-Link进行程序下载。

#492 华芯微特 » 从零开发SWM181之----构建裸机控制台框架 [收到来自华芯微特--韬哥的SWM181CBT6开发板] » 2020-01-07 21:40:07

LinjieGuo
回复: 30

感谢韬哥发来的SWM181CBT6开发板,板子是最小系统,我们仅仅是用于熟悉这个芯片,即使上面资源不多,也丝毫不影响我们对这个芯片外设进行开发。
对SWM181CBT6-LQFP48进行简单的性能介绍。
(1)内置16KB SRAM  120KB Flash
(2)32 位 ARM® Cortex™-M0 内核,可运行在48MHz
(3)SPI x 2  UART x4  I2C*2  CAN*1
    8 通道 16 位 PWM 产生器
    12 位 8 通道高精度 SAR ADC
    16 位 6 通道高精度 SIGMA-DELTA ADC
    24MHz、48MHz 精度可达 1%的片内时钟源
        芯片淘宝官方店报价:4.6元零售价。看起来性价比还可以。
        多余的便不作介绍,开发板直接上图。
FluxBB bbcode SWM181CBT6_Board
        板子上面资源不多,主要是:CH340G+芯片+20P大JTAG口。简单的例程调试基本上没有问题。支持一下国产MCU,思考使用什么姿势打开这款芯片的外设资源,后面再更贴。

#493 Re: 全志 SOC » F1C100S裸奔framebuffer+PWM+GPIO驱动 » 2020-01-07 11:15:01

thwin520 说:

谢谢,不知道怎么弄成可以在keil上编译后可以直接下载到spi flash直接运行的,苦恼。

keil上面有个load模式,自己写个bat脚本,命名位load.bat,就可以了

#494 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-01-07 09:55:26

LinjieGuo 说:

可能我在写帖子时,忽略了一些东西取消了某些选项,晚点传配置文件上来

现在传上来。包里面存在两个文件".config"以及"config.in"

buildroot配置文件
下载后解包看看。

#495 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-01-06 08:59:21

xiao.huang 说:

$ ls -lh output/images/
total 95M
-rw-r--r-- 1 ted ted 95M 1月   6 02:41 rootfs.tar

大神指点一下,为什么我编出来的根文件系统有 95MB?
我是想烧录到16MB spiflash,解压出来发现 gdb 和 mplayer 占了几十M;
.config文件

https://whycan.cn/files/members/2854/toolchain.png

可能我在写帖子时,忽略了一些东西取消了某些选项,晚点传配置文件上来

#496 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 从淘宝网购买时要小心 » 2020-01-05 10:04:33

楼主言语之间一直存在种族歧视,叫别人删号删帖的行为纯属是‘脱裤子放屁’,像你这种人,跟你讲道理便东扯西扯,骂~你又说素质低下,实际上,素质最低的便是你。中国人以和为贵,你却屡屡挑事,简直是败类。

#497 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-01-02 15:30:35

三哥 说:

由于我不会在linux下烧程序到板子,我都是在windows下操作。所以我找了宿主机和客户机之间互换文件的方法,希望把编译的文件拿倒windows下烧写。具体方法见这个网页:https://www.cnblogs.com/sunev/archive/2012/03/16/2400887.html

方法很多:
(1)VMtools
(2)FTP/SFTP
(3)nfs,这个比较方便,编译完,win端刷新,写个bat命令脚本,使用sunxi-tools,相对路径烧写bin文件。
这方面的话,自行科普比较好一些。

#498 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-01-02 15:07:55

三哥 说:

是的,谢谢楼主

嗯嗯,实在不好意思,因为帖子发出来一阵子之后,无法修改了。

#499 Re: 全志 SOC » 尝试从零构建F1C100s开发环境 » 2020-01-02 14:35:09

三哥 说:

123456进不去

稍等,我看看。密码可能被我改成linjie了。你输入"linjie",然后回车看看。

页脚

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

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