- 主题:GD32的库真是写的稀烂
对了, f4的usb你玩了没? f1和f3似乎能通用, f0也差不多, 但是到f4完全变样了
【 在 spadger (imdx) 的大作中提到: 】
: 我觉得GD32的库写得比STM32的库更好,虽然有些bug
: 尤其是USB库,STM32的才是稀烂。
--
FROM 106.121.158.*
具体怎么烂法, 举个例子?
我是觉得取寄存器时用函数调用风格的RDATA(USART1)之类不如stm32官方库的USART1->RDR看着舒服, 不过纯小写+下划线的命名风格比匈牙利式看起来更顺眼.
个人喜好问题吧
【 在 Qlala (Qlala) 的大作中提到: 】
唉
给的少就不好好写代码么?
按说他家上市 应该不少财务自由的啊
--
FROM 106.121.158.*
最近找了几个第三方的usb库, teenyusb, tinyusb, libusb_stm32
结果前两个都是配合hal用的, 第三个似乎看着顺眼些
【 在 spadger (imdx) 的大作中提到: 】
我觉得GD32的库写得比STM32的库更好,虽然有些bug
尤其是USB库,STM32的才是稀烂。
【 在 Qlala (Qlala) 的大作中提到: 】
: 唉
: 给的少就不好好写代码么?
: 按说他家上市 应该不少财务自由的啊
: ...................
--
FROM 106.121.158.*
以后有空试试
引入的新字符不少啊, 猛一看有点晕...
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 没看过gd32的库,但我觉得stm32的库确实就是稀烂,绝对不是这点点命名风格问题。
: 我最近开始尝试用rust做stm32的开发了,目前感觉良好。
: rust的好处有几个,一个是非常严格的编译期代码检查,基本上能通过编译的代码就不会
: ...................
--
FROM 106.121.158.*
好吧,虽然没多少, 也不少了...
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 没多少吧...这个可读性应该是一目了然的,学没学过没影响。
: 里面出现的比较多的是mut和unwrap,
: mut是声明这是变量,rust默认“变量”都是immutable的...
: ...................
--
FROM 106.121.158.*
要是能把库预编译成.a也能快点啊...
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 更要命的是这样的库还有peripheral,hal,ll三套...基本上是重新定义了“烂的最
: 高境界”...
: 在rust下不需要折腾makefile,折腾各种库的编译环境,各种库都是模块化的直接
: ...................
--
FROM 106.121.158.*
v-usb?
主要是avr能做到指令级别的运行时间可控吧,用汇编指令凑出usb时序
stm32够呛吧...
以前在哪看到有人考虑给stm8弄一个,出了半成品吧
不过stm8那点资源跑了usb也剩不下多少了
【 在 spadger (imdx) 的大作中提到: 】
没,STM32的我就用过103的USB。
最近在用GD32的USB,它硬件上有两个IP,USBD和USBFS,USBD兼容STM32,USBFS完全是另外一个样子,寄存器地址配置完全不同。
USB用来很简单,但是开发真挺麻烦,很少有人从0开始写代码,各个MCU都有自己的USB库。
感觉应该是这些MCU上最麻烦的一个外设了。
AVR上那个软件模拟USBLS的库还挺神奇的,ARM上好像没人这么干。
【 在 tom6bj (tom) 的大作中提到: 】
: 对了, f4的usb你玩了没? f1和f3似乎能通用, f0也差不多, 但是到f4完全变样了
--
FROM 106.121.158.*
这是底层轮子都有了吧。。。
我数了一下, stm32f10x官方usb库, 回调函数最多得42个
(实际用不了这么多, 很多是nop_process)
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 贴个usb的例子,如果用寄存器要写死人吧?
: //! CDC-ACM serial port example using interrupts.
: //! Target board: Blue Pill
: ...................
--
FROM 106.121.158.*
结构体风格的移植性有什么问题呢, 都是标准c
stm32官方库通过了什么ansi认证的吧
【 在 spadger (imdx) 的大作中提到: 】
gd32的库用了大量的宏,很多操作在预编译阶段就搞定了,可读性略差,感觉效率应该高一点。对于倾向于直接使用寄存器操作的用户更友好。
寄存器描述,STM32用结构体,GD32用宏;前者可读性好一点,后者移植性好一点。
【 在 tom6bj (tom) 的大作中提到: 】
: 具体怎么烂法, 举个例子?
: 我是觉得取寄存器时用函数调用风格的RDATA(USART1)之类不如stm32官方库的USART1->RDR看着舒服, 不过纯小写+下划线的命名风格比匈牙利式看起来更顺眼.
: 个人喜好问题吧
: ...................
--
FROM 106.121.158.*
感觉hal是给没写过mcu, 从java/web之类转行过来的码农准备的吧。。。
【 在 eggcar (eggcar) 的大作中提到: 】
: 我不用hal啊。。。我用ll...
: 第一次用hal写个串口收发简直像是被喂了shit...
--
FROM 106.121.158.*