C的显性指针明显更加直观易用,如果rust算有指针,那JAVA也有指针,这些隐性的指针对寄存器操作没有何任的易用性可言,如果我没记错,ESP32的SVD文件就有高达4万行,本质上是一本字典。我觉得在C语言环境做这种字典也是可以的,但既然C有显性的指针,svd就变成画蛇添足。
安全特性对于多任务系统中,不同程序之间的内存管理的确更安全,问题MCU的ROM本身只是一个程序,MCU的程序开发多数情况又是一个人完成。安全性就相当于偷窃我的人是我自己,没有半点意义。
【 在 lvsoft 的大作中提到: 】
: rust其中的一个目标是跟c同等地位,也即c能做的rust一定能做。
: 就说指针好了,mcu里的寄存器全部都是定义一串地址偏移量的指针。c里面都是一个头文件里面裸地址直接写在上面然后强制转换成指针。
: rust当然也可以这么写,但给rust做hal库的人每这么做。他们的做法要安全并且严格的多。它利用rust的宏特性直接导入mcu厂方给出的svd文件。除非你去改svd,否则压根不存在改错的可能。当然,厂方也是会犯错的,所以这个导入svd文件的功能还有patch能力,可以按需要导入base svd,patch svd等等。
: ...................
--
FROM 14.223.161.*