MoreRSS

site iconelmagnifico | 云浅雪修改

程序员,架构师,无人机集群表演设计师,嵌入式工程师,maya插件开发者,多智能体研究者,独立游戏爱好者。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

elmagnifico | 云浅雪的 RSS 预览

重庆游记

2025-06-27 00:00:00

Foreword

重庆十二日行,不过还是以工作为主,闲时去逛逛。距离我上次去重庆(2013.10)已经过去接近12年了,物是人非,很多地方是以前我都没听说过的,甚至以前都没有的地方。

物是人非,上一次匆匆地来,匆匆地走,很多东西都没怎么体验到,这次我在重庆很想你。

重庆

落地

六月八日中午落地重庆,此时深圳已经很热了,没想到刚落地的重庆竟然还这么清爽,皮肤还没适应过来,出乎意料。不过这丝凉爽,几个小时后就再也感觉不到了。

弹子石老街

image-20250626005252396

住在了离弹子石老街非常近的地方,这里距离机场非常近,20分钟就能到。这年头什么老街都是新建的仿古建筑群,青石老建筑,有点民国时期的样子。住的这个由于是属于长嘉汇,又离老街这么近,基本消费都是景区级别的,比深圳的日常消费都还要高一点点。

长嘉汇购物公园,那就更离谱了,比深圳还贵,感觉价格是深圳普通CBD的2倍,不知道重庆本地人是咋消费得起的。

这个附近日常人确实不多,尤其是白天,人烟稀少,但是到了晚上,人相对就多很多了,难道是出来乘凉?但是重庆晚上一点都不凉快啊,闷热闷热的。

弹子石广场

image-20250626222559821

弹子石广场看江景,看朝天门,看夜景不错,后面是重庆规划展览馆,晚上也亮灯

img

十多年前第一次去重庆,最喜欢吃的就是他了,那会好像还不是预制菜,可以看到后厨在炒。最喜欢的就是川菜小炒,乡村基就可以选两三个小炒,小份量拼一起变成一个套餐,当时觉得可以吃一辈子都不厌烦的那种。

现在去,上餐不超过一分钟,啥都是预知好的了,没了烟火气。广场周边的餐馆吃了个遍,就一家炒的味道和我小时候吃的川菜很像,其他家感觉差别还是有点大的。

龙门浩老街/下浩里

image-20250626213706686

石头建筑群,在山上,需要走一点台阶,还好不是很高,人文气息比较重,整体规划也还行,路上还遇到了佛造像和拓印馆,免费看,收费体验拓印,带小孩可以去玩玩。

比较巧的是DNF 17周年,在这里做了活动,有一些打卡点或者游戏点设置在山城上,老街也是类似的,全国地摊该有的他都有,还有一些重庆这边特有的糖水摊子。

白天来是非常热的,晚上可能好一点,山城晚上灯光也更好看一些,山顶有一片小玻璃栈道,可以看这个类似绣花针的东水门·长江大桥

image-20250626223746443

路上偶遇一个猫猫,好想喊他起来重睡

长江索道

image-20250626215211999

索道过去只有一趟,价格30,体验极差,需要等至少半小时起步,还是淡季,索道车厢大概一次坐三四十甚至更多的人,拥挤程度和早晚地铁差不多,没先到好位置,那你就站中间啥也看不到了,你也不可能挤的动,对比越南的世界第一索道,能说拉跨,建议别来。

当地人说这就是他们以前的公交系统,大可不必来吃苦。

解放碑

image-20250626220425238

解放碑附近人还是挺多的,重庆的市中心,这个高楼的密集程度,我感觉堪比深圳的城中村,都挨得太近了

image-20250626215746243

解放碑跟前吃了一下防空洞的老火锅,就是红油,以辣为主,能吃,周边街道上一个火锅店挨着一个火锅店,多得离谱,满大街也都是火锅的味道。

后来出租车司机跟我们说千万别去市中心吃,太坑了,可惜晚了,我们都吃完了,费用也确实不低。

洪崖洞

经常听人提起的一个地方,总感觉有点韩国地名的味道,其实就是长江边上沿着悬崖建的一些仿古建筑,高低跨度挺大的,里面错综复杂的

image-20250626220809962

内部看起来有点香港老街的赛博朋克感觉,实际上很多特产店、潮玩店、服饰出租、拍照出片的店。稍微靠外一点就是同质化严重的全国地摊店。

image-20250626221858723

洪崖洞下入口还有个小瀑布,洞里有点祈福的小道具

朝天门

image-20250626221722519

朝天门没啥特殊的,晚上从对面看过来更好看一些,重庆也就夜景不错了

image-20250626222513866

李子坝

image-20250626222255412

就是那个著名的重庆吃火车、吃地铁,地铁穿楼的地方,不过这个打卡,估计要从江对面拍更好一些,这个位置很难,而且人超级多的。

十八梯

image-20250626223022386

十八梯是因为吃水的井距离居民住处刚好十八步石梯,所以叫十八梯,也一样的是老街风貌,十八梯很大一片,不过看起来路对面还没改造完成,很多店铺都还是空的。

image-20250626223338006

老街上总是有一些非常不和谐的,大俗之物

image-20250626223959802

还有这种非常无厘头转圈的鸭子,不懂什么意思。

晚上去了个苍蝇馆子,烧鸡公,贼辣,红油里捞鸡肉吃,中午吃了火锅,晚上再吃这个超辣的,我是顶不住了。

磁器口

image-20250626225302756

匆匆那年,磁器口是我重庆唯一重复去过的地方,一下车我有点陌生,这好像不是当年的磁器口啊,这建筑也太新了点,我记得以前的磁器口可是又老又破的。

image-20250626225747197

磁器口新街入口,这温度计38度,确实是一水的新建筑,宽阔的街道,焕然一新的石砖,没了那味道,也有可能是重庆这种街太多了,审美疲劳了。

新街有个磁器口历史博物馆,看到15年磁器口才被认定为文化老街,那我当年来的时候还啥都不是呢,顺着博物馆一直往下走,就能走回老街了

image-20250626230136407

小小网红打卡点,梵高风格的小巷子

image-20250626230603714

老街这里好多麻花店,好像当年还带回去给老爹吃过

image-20250626230741934

老街尽头就是江边了,旁边是各种洪水曾经淹没的高度

image-20250626231126492

磁器口里还有一个西魏古刹,宝轮寺,内部不允许拍照,寺内的修士还有猫猫求领养,我去看了一下刚出生一两个月,还很小的猫咪,很可爱。

西南政法大学

image-20250626231010672

沙坪坝,西南政法大学的老校区了,似乎没多少学生,都是继续教育的成人了,校区也很小,走了一会就从另一头出去了。

晚上去了重庆很有名的火锅店:俊杰火锅,人也超多,平常日子里也要排队,主打一个辣,第二天主打一个窜,以后还是要量力而行,该鸳鸯的还是鸳鸯吧,能吃辣,但是不能一直吃辣。

Summary

重庆实在是太热了,蒸笼一样,这个地方只适合晚春天或者晚秋来玩,其他时间绝对不会再去了。

整体重庆没啥特别好玩的,山城、古镇、老街实在是太多了,看的人疲劳,只有夜景值得一看。

重庆的司机倒是都挺好的,聊起来也都很热情,开车可是真狂野啊,还是路上电动自行车少,可以飙一点,对比深圳这么开早就撞人了。

重庆不禁摩,路上各种轰轰轰叫的重型摩托,炸街一流。

STM32 DMA数据丢失

2025-06-26 00:00:00

Foreword

STM32 DMA数据丢失,这个问题还挺常见的,之前我也遇到了,不过由于只是首数据丢一个字节的数据,对于整体不是很大影响,所以没在意这个事情,放过去了

之前遇到的”DMA PWM输出第一个bit bug”

https://elmagnifico.tech/2020/06/03/Dshot-STM32-PWM-HAL/

DMA

这次这个问题变得很严重了,每次数据传输都有比较大的概率丢一个bit的DMA数据,很是奇怪。还有一个小现象,似乎电压波动更大一点,丢的概率就更大一些,这个现象一度让我以为是电源问题,想丢给硬件去解决。

不过后面仔细看了一下现象,怀疑了一下问题发生的点,后续还是软件解决了。

问题情景

还是发生在Bidir-DSHOT中,由于每次数据发送需要接收返回的内容,所以Timer 触发 GPIO的DMA并不是循环模式,而是单次模式,工作完成以后切回GPIO Input模式等待接收,收完再切回输出,以此循环

https://elmagnifico.tech/2023/04/07/bi-directional-DSHOT/

相当于每次DMA传输都是首次DMA,这个首次发生数据丢失,这个数据本应该是0的,输出却是1,而后面的数据都是正确的,这个概率还不低,会直接影响到接收方的电调识别,导致这次的Telemetry无法返回。

方案一

由于Bidir-DSHOT的特殊性,驱动中传输结尾本身就会发送一些没用占位符,那么同理,我们可以在传输前也发一些占位符,让首bit出错,出现在没用的地方,不影响后续电调的识别。

Bidir-DSHOT的波形本身也比较特殊,空闲时是高电平,那么基于此只要在DMA传输开始前先传输3个字节的高电平信号,再开始真正的

数据传输,那就可以了。

这个方案是最简单的,改动几个数组就行了

方案二

也是突然灵机一动,想到这个DMA和Timer有一些特殊性,是不是二者的时间没有对齐导致的。

Timer启动,理论上第一次启动就立马会触发DMA搬运一次数据,但是如果此时DMA没有启动呢?所以DMA错过了一个bit的数据,下次Timer再次触发,此时给到DMA的搬运序号就递增了,那么DMA就开始搬运第二个数据,这个流程如果猜想正确,那么就完美符合我们当前的现象。

这个验证也比较简单,估计在DMA和Timer启动之间加一点延迟,让DMA启动延迟大一些。实际看到,确实可以造成100%的数据丢失,延迟足够大甚至有可能丢更多。

那么解决起来也比较简单,先让DMA启动,在确认启动的情况下,再去启动Timer,避免二者有配合间隙,实测后,DMA丢数据的情况基本消失了。

Summary

我的突发奇想,也同时让Cursor去解决了一下,Cursor给的解决方案基本和我的想法一致,他两种方案同时都做了

image-20250625232936283

说明这个问题还是经常有人遇到的,之前放过去了属实不该

Nintendo Switch2

2025-06-05 00:00:00

Foreword

NS2总算发布了,今天就直接拿到了,ns1总算可以淘汰了,各种小问题已经懒得折腾了

Nintendo Switch2

预定

香港官网直接预定的,3750港币

image-20250605224323443

但是为了这个专门弄了一个香港手机号,-229

自提,交通来回,-75*2

算下里成本都3800了,而京东或者pdd、淘宝各种折扣打下来最低可以弄到3000单机器

自提地点选了西九龙高铁站的自提点,不出站都能提走(其实还是出了)

image-20250605224605144

自提

群友3号就从顺丰APP上看到了发货,实际也确实是3号就寄出了

顺丰还必须得是香港顺丰,挺难安装的,安装完成就能看到提示了,4号就显示派送了,但是被官方统一要求5号才能取

【順豐速運】單號SF3179698366232,閣下的包裹預計派送時間只作參考,根據寄方統一要求快件將在6月5日順豐站營業時間內正式開放自取,屆時請留意APP的取件通知。謝謝 。

从4号开始取货时间一改再改,很急,直到5号早上10点多,我都到高铁站了才显示可以取货了,但是高铁还要等1小时

image-20250605224914025

出高铁站,到达G层,再拐上去就能看到顺丰网点了,很多人过来取件

image-20250605225336782

image-20250605225126144

拿到手直接就开箱了,迫不及待

开箱

image-20250605225441241

第一感觉可真大,按上手柄以后感觉还是有点松垮

image-20250605225530789

不更新完进不去主页,新的肩键很松,感觉有点廉价

image-20250605225611079

本身手柄是磁吸上去的,吸上以后中间还是有个缝隙,不像以前是严丝合缝的

image-20250605225941273

image-20250605225632837

第一批还是太急了,TypeC口做工没对齐

image-20250605230400904

支架的阻尼感还可以,比1代的好,左右看起来只是宽了一点,但是上下宽了挺多的

以前ns1的收纳包放不下ns2了,兼容不了

image-20250605233234712

这个英标插头是真的恶心,转换头也大,合在一起超级难看。适配器最大功率是60w,20V3A,基本上现在新一点的适配器都能做到这个功率了,甚至转换器本身都有65w的供电口

数据转移

启动时有一个整体转移,需要插sd卡,还要ns1在旁边,我又没带,不走这个流程又进不去,只好先不转移,后续回去以后再一个个账号转移。

转移也挺简单的,两边账号登录以后,很快就全转移过来了

ns自带256g存储,比以前32强太多了,暂时不用买那天价的sd卡了

  • 最近才买的512给ns1,ns2还用不了,简直血亏

image-20250605230824887

游戏直接开uu下载,还是很快的

image-20250605232313212

常玩的游戏都下完还有一百多G,暂时都可以不考虑SD卡

就是现在的虚拟卡系统,转来转去的需要蓝牙配对,配对起来有点慢,太麻烦了

主机模式

ns2插进底座里,可以前后晃动,有点松胯,对比ns1晃动范围大了很多,不过这样也有好处,散热更好一些,不像一代闷罐

image-20250605235453625

有一说一,传送道森林是真的快,以前我记得我都能去撒个尿,现在一下就好了

image-20250605235500214

这都是买了高清材质包,然后开的游戏

image-20250605235515831

可以看到是4k输出,60hz,120hz需要游戏独立支持才行,同时电视也得是hdmi2.1或者更高标准才行

同捆的马车世界,比赛和马车8好像差不多啊?就是多了一个自由探索,有点地平线的意思,但是里面有很多小挑战,小关卡。但是不像地平线开放世界,他还是一个地区一个地区的方式,只是地区地图很大,很复杂而已

老手柄匹配到新机器也非常简单,流畅,用起来没问题,只是充电又得回到老机器上充,这个稍微麻烦了一点。新手柄磁吸还是非常强的,取下来有专门的按钮,主要是靠顶出来脱离磁吸范围的,硬拽也能取下来,但是容易拽歪,损坏接口。

卡带/虚拟卡

image-20250608004708190

以前是可以主副账号同时登录多个机器,然后就能共享游戏,离线模式下可以同时多人玩同一个游戏,互不干扰,也就是淘宝中出租账号的商业模式,而新的系统强制使用了虚拟卡。

虚拟卡要求每个游戏仅能存在于一个机器上,一旦转移到别的机器上,即使同账号,你也不能打开了,这样就封堵了出租账号的共享漏洞。由于我是全数字版,以后分享给朋友账号就不行了,只能虚拟卡给别人玩了,好处是不用到处登账号了,坏处是共享不方便了。

续航

续航基本没啥提升,电池容量在那里,玩塞尔达大概就是2小时半不到就完全耗尽了,刚好够坐飞机,从坐下一直玩到降落,刚好没电

Summary

整体系统是比以前流畅了许多,特别是进商店啊,打开游戏,启动速度都比以前快了好多,感觉和ns1不是一个世界了

Su7 Ultra下赛道

2025-05-20 00:00:00

Foreword

记录一下Su7 Ultra下赛道的准备,还有一些难找的信息、科普内容都汇总到一起了

安全

头盔

赛车头盔有下面一些品牌:

  • Xquip,好像是唯一的国产品牌,入门型号FF-S4,FIA认证大概要2700左右,SA2020认证只用1700

  • OMP,优点是视野大,入门型号GP-R,2900左右

  • Aria,优点是帅,其实感觉好像差不多,入门型号GP6S,3400左右

  • SPARCO,入门型号W01,3000左右,碳纤维版5500,好便宜

  • Bell,高端牌子,入门型号GP3,4600左右,经典型号RS7,5500多,碳纤维版9700多,

  • Stilo,好像最便宜都5300,主打拉力头盔,GP类的好像比较少

我买了Aria GP6S,还行,送两个头套,不用额外买头套了

HANS 汉斯

image-20250520024043165

主要是防止你颈椎折断的,他需要和头盔适配,两个卡子是和头盔上的汉斯扣固定的,防止你过度低头,后面的靠背是防止你后仰过度

汉斯价格也不低,最少也要2000大几百

头套

image-20250520023934410

头套,如果头发比较长,头盔是比较紧的,容易夹头发和反折耳朵,所以大部分人会带头套然后再带头盔

还有赛车服、手套、鞋啥的,暂时还用不到,就先不考虑了,赛道日基本头盔是必须品,其他的要求不是很严格

安全标准

赛车上的安全标准大概就是这么两类,FIA主要适合欧、亚地区的赛事,SA2020来自于Snell适合美国那边的赛事。由于这个规则不断演变,安全性要求越来越严格,所以这个标准一直在变,可以看到后缀的数字

  • FIA8859-2024

  • SA2020

FIA8859-2024,是现行标准,对应到头盔,每个头盔寿命只有5年,过了以后安全认证就不过了,它对应拿到的那个认证也只有5年有效期。国内一般都是认FIA的设备,所以无脑选FIA即可,不过价格也贵一些。

安全带

四点式的安装要求,挺麻烦的,随便改的只能说能用,但是能不能起到应有的效果,就要打个问题了

image-20250517224146009

image-20250520012631047

Su7 Ultra改装四点式安全带

image-20250520101513442

https://www.bilibili.com/video/BV1rbQDY2Ejs

先说明高翔的改装方式是完全错误的,四点式的安全带本来就不能被固定在座位自身上,这样这个安全带根本就没起作用。

这里要相对正规的安装,是需要使用后排的儿童安全座椅的卡扣(ISOFIX),做个转接即可,这样平常也很好取下来。

image-20250520013848194

把这个插入到ISOFIX接口,然后四点式安全带连接到这个卡口即可,原本ISOFIX的带子就不要了

这个地方可能角度也有点偏大了,也可以系在座椅放下以后的黄色卡口上

image-20250521223045968

接这个黄色(也有可能是银色)的固定卡口,安全性上可能会更好一点(这种方式是不需要ISOFIX的,直接安全带就能接了,长度也够)

image-20250520101543677

腰部的安全带需要锚定椅子下方,这个板(L型拉环扣)需要把座椅弄起来固定上去,可以让4S店帮忙弄一下,也很简单,到这里基本上这个4点式的安全带就完全弄好了

改装成本很低,四点式安全带二百左右,ISOFIX二十多,L型拉环扣十几块,一共二百五不到就能解决安全带问题

  • 注意,四点式安全带上路不合法,被拍到也认为没系安全带,会扣分罚款

这种方式是改动最小的,也相对安全,同时也最灵活的,电车就算日后需要年检了,也很简单就取下来,完全看不出来改装的事情

改装过程

到小米4s店,跟他说明安装方案以后,他感觉是可以装的,不用收费,作为整备环节之一

  • 记得去4s店办理需要带物理钥匙

小米4s的车间不给参观,但是由于我要沟通方案,还是进去了,其实好像也没啥机密的,就正常维修店

  • 小米的接待说,他们的门前台阶雷达是扫描不到的,高度可能和车底差不多,可能会蹭到,让我用离车泊车注意一下,小米车底盘大概是15cm,不同款高度略有不同

这个L型扣板和座椅其实有点不适配,座椅的滑槽下面有一个卡位方块,需要卡到车底盘下面,这个东西,还挺长的,大概有1cm高度,扣板的孔是过不去的,直接放这个方块下面,那你螺丝都拧不上了

image-20250601122410996

  • 因为轨道两侧是比螺丝高的,所以L板无法直接放进去,高翔是把螺丝垫高了,然后L板架到了轨道上面,这样这个螺丝就没吃满,少了1cm左右,这其实有点危险

然后我摸了一下,这个前面还有一个定位的长柱子,这个柱子就比较细了,扣板可以扣下去了。

但是还是对整个座椅有点影响,他把座椅垫高了一点一点,大概3mm左右,这就导致后面轨道不是完全卡下去的,稍微有点影响安全

  • 相对螺丝少吃了3-4mm,比高翔的好一点,但是也不多
  • 无论哪种改装,都会导致原本这个滑轨的装饰盖,盖不回去了,美观-1

弄完以后我的4点式安全带就可以真实用了,试了一下还是很牢固的,但是会限制到座位前后移动,安全带的扣和座位侧面有点阻碍。

后续发现座椅下面有一个几毫米的空间,可以穿过布带,那这个方案还能做的更好。

顺便在4s店看了一下最近传的比较多的大灯上盖板翘起的问题,确实有,很多外面晒的车,多少都有一些,微微弓起了,能看出来不是以前的严丝合缝。

拖车钩

考虑到你可能上墙,所以有些赛道要求你必须安装了拖车钩才能上赛道。

image-20250520011456711

Su7和Ultra都是在车右侧灯下有这么个活动门,旋转就能取下,拖车钩在后备箱的工具包中,旋紧即可,同时外接电的电源线也在这里,车彻底没电时,这个电源线可以外部充电,从而打开前备箱,进而维修充电什么的。

拖车钩安装以后,这个盖子可以放到后备箱里,那个红线可以塞回里面,最好带个胶带把正负极粘一下,防止碰到一起了,有个老哥直接现场拿胶带粘前面了,稍微有点搞。

赛道

主要是深圳周边的,可能可以去玩的赛道

珠海国际赛车场-ZIC

图片

ZIC的赛道日,需要关注公众号珠海国际赛车场ZIC1993和泛珠三角超级赛车节ZIC-1993,还有一个公账号是精彩乐动,应该都是ZIC官方的活动号,赛道体验或者活动可以通过他们获取相关信息

image-20250519201502845

报名用的是微信的报名工具,填一些基本信息就可以了,双人套餐更便宜一些,不过是两人共享时间,时间上有点少

  • 还有卡丁车也能体验,还行吧

ZIC的赛道日比较少,大概一个季度能来一次,珠海赛道日可以不用自带头盔,还挺好的,对车也没啥要求,你就只管开就行了。

ZIC赛道算是相对其他来说比较合理的,适合GT类型的车去跑,Su7也有一战之力。

纵观全国所有赛道,只有珠海赛道是最长的,直线给的也是最多的,非常适合新手去体验一下超级速度,适合Ultra去玩,其他赛道相比之下直线就比较少了,弯道就比较多,珠海的服务各方面做的也都算是不错的了。

珠海也有半年卡,1999,可以跑5次,每次30分钟,也就是一次200,还是挺不错的。

广州从化国际赛车场

img

赛事活动关注公众号:从化国际赛车场,从化赛车场主打摩托和卡丁车,汽车的很少很少,日常是可以买卡丁车票去玩,但是汽车赛道日基本没有,所以可以忽略这个赛车场

广东国际赛车场-GIC-肇庆赛车场

图片

GIC之前说要拆掉的,后来又停了,由于这个名字和麻涌的都特别像,我们就用地名称呼,这个是肇庆赛车场,赛事活动关注公众号:广东国际赛车场

image-20250520002812022

GIC这个价格看起来挺便宜的,而且可以玩的时间,看日历很多,他一节30分钟,珠海15分钟,差距啊…

image-20250527101609151

GIC赛道体验也是有活动的方式,报名需要询问对应的联系人,价格是750,时间不一定,需要每次问

广东竞速国际赛车场-麻涌赛车场

图片

麻涌赛车场的活动需要关注公众号:广东竞速国际赛车场或者是方舟赛车,有活动会发公告

麻涌赛道日大概是一个月一次,价格就是贵一些688,但是胜在时间长,相当于一伙人包一天了,然后不含头盔,需要你自己处理

image-20250519194446351

麻涌的赛道日,价格688,含保险。车不允许用热熔或者半热熔轮胎,不能改装。新手第一次就是需要弄个头盔,其他倒是没啥大问题。

麻涌赛道偏小,弯道超级多,而且都是那种180的掉头弯,开起来难度还是挺大的,适合弯道选手,车比较轻的那种。Ultra在这里没有明显优势,反而很危险。

image-20250601121056895

惠州福岗赛车场

图片

没有任何联系方式,老的运营方的公众号:惠州福岗赛车场,基本都没人管了,所以不知道现在是什么情况,只是看B站或者其他分享偶尔有在这里玩的信息,但是具体怎么个规则,可能还得现场去了才知道。据说:全天票800,半天票600,半小时300,10分钟150,这个18年就是这个定价

福岗赛道是最小的,一共才1.4km,据说是卡丁车改的,比较适合小车漂移。

赛道日

赶上的赛道日就去体验一下,本来刚提车那会3月底就有ZIC的比较大的活动赛道日,然后就给错过了,后来4月底好像还有一个,去了越南也错过了,这次5月底的总算赶上了。

ZIC赛道体验之旅

image-20250525195543106

赛道体验之旅基本大差不差,都是这样的

image-20250525193748964

5.25去ZIC赛道日体验

行程大致如下:

10点前签到,然后接着开始赛道前培训,20分钟结束,接着大家下去开车到维修区排队,10点30等待安全车带着跑2圈回到维修区,然后就是正式的15分钟。大致30分钟结束,然后第二组继续上一个循环。如果双人体验,自行决定15分钟何时回到维修区换人。

  • 如果遇到红灯闪烁,记得慢开回到维修区,可能有人事故了
  • 注意赛道上撞车了,是各修各的,不存在保险和甩锅,撞坏赛道是要额外赔付的

实际体验,新手还是挺多的,一场会亮个一两次红灯,有车故障停在路中,也有Ultra冲下沙石地导致红灯。再加上慢车很多,实际跑起来很难跑出像模拟器里一样,完整的一圈。

提前跑模拟器还是有用的,至少你知道在哪里需要刹车,你对能不能过这个弯以及后果认知是很清晰的,上了赛车场就跟回家一样熟悉

上午弄完了,下午就可以去玩卡丁车了。卡丁车也很近,过了赛道桥往后走就到了,卡丁车还是比较好的,车子也还行,提供头盔、汉斯,现场工作人员都帮你弄好。

image-20250602164722845

下午是电车油车的半年卡活动,油车人很多,但是电车据说人很少,就4个电车,还2个Ultra,他们就能完整开一圈,可以开到1.50+,还是很不错的。等下半年年卡放出来,再去玩玩,年卡一场好像是半小时,算来下一场才200块,很便宜。

  • 深圳去珠海有了深中高速,比以前快多了,而且到赛车场可以三连高速直接到赛车场附近,三连高速的测速很少(主要是珠海段少,而且存在假测速),路又超级宽5车道+,晚上去车少,可以开到200+,很恐怖

小米的这个赛道大师,数据不能导出,赛道也不会自动录个单独的一圈的视频,哎很蠢,想对比一下别人的数据或者跑法,就不行。

麻涌赛道日

image-20250601120130050

5.31去麻涌赛道玩一天,实际安排其实很差。

image-20250601114645618

说是自由跑一上午,其实实际给新人就只有一节,然后另外一节是中午没人要的时间,下午还有一节直接用来比赛了。每节时间间隔都非常长,等起来很消耗精力。摩托车是临时加上去的,然后又临时去掉了,整个时间安排现场又有改动。

麻涌赛车场,新人培训,也是野人培训的,有很大偏见,对比珠海来说不够客观,也不够专业,培训者好为人师。

  • 新人副驾不能带人

我上午跑的第一节就跑出了我的最快,74秒,中午太热了,根本没状态,都是80多秒。

实际麻涌赛道由于过短,人又多,分组很多,但是每组只有8个人,而且分时间入场,跑起来更像一个人在玩,新人基本没有超车什么的危险的行为。整体可以完全沉浸其中挑战自我,这点比珠海好。

下午太热了,我提前撤场了,然后计时赛中就出现了Ultra和Max相撞的情况,两人双双退赛,Ultra车损可能高达5w,还得自费,那个老哥直接血亏。

我跑模拟可以跑到61s左右,实际开发现,确实有很大差距,很多地方速度不敢提上去了,赛道比较滑,过弯都是磨着轮胎叽叽叫着过的,赛道中同一个位置(T5转T6)spin了两次,尾巴刮到了一点树丛,还好及时救回来了,没有出更大事故。

看了一下分组赛成绩,油车,类似86这种在这里非常快,都接近60s,全场最快有一个60s的,非常厉害了。

image-20250601115714747

每组的前三可以得到一个小奖杯,可以上领奖台,有点意思。

如果是第二次去玩,就是非新人身份,可以提前去了提前进去练习,晚上弄完了也有自由练习时间,甚至还有自由包场时间(价格也还行)。

大佬指点说很多地方入弯太快了,一直响轮胎,可以更慢入,更快出弯。

image-20250602164653042

Ultra Club

Ultra Club赛道的会员服务,不支持小赛道驻场,只有珠海这种大赛道才有赛道驻场(目前情况是非小米官方组织,连场都进不去,很尴尬

image-20250519194027662

去赛道日前,预约上面检查,他就想你开去4S店检查,感觉让他上门服务也有点不情不愿的。别人up主那里就各种凌晨服务、很舔,到你手里就有点看人下菜的意思了。服务还是有的,四点式安全带让他们协助安装了,遇到了一个小哥很积极,人很好。

具体到赛道日的时候,珠海由于是官方的,非小米的,所以赛前检查他们进不去(小米竟然没把这里的关系打通,我服了),他们就在车场门口等我,放胎压,检查一下常规的东西,安装拖车钩啥的,虽说是附带小米的赛道大师讲解,教学,但是实际上这个人没下过赛道,没跑过模拟器,赛道大师你觉得他能用过吗?

  • 之前我是去深圳做赛前整备,深圳的也以为是他们开车(专用整备车)去珠海,能进赛车场。后来得知他们进不去,就换成了珠海的。感觉深圳的更专业一些,珠海的相当于是小店的维修师傅,很多东西不知道,服务做的就差一些(这里感觉还是得加强,珠海本地就是赛车场,要是服务弱了,这咋用)。
  • 由于Ultra会员也只有2000人,所以整个服务跑的都不顺畅,磕磕巴巴的,感觉没几个Ultra会员预约过他们的服务,要么就是被他们各种借口给搪塞回去了,从而减少了服务项目。

跑完以后,再开回来给他们继续检查,说我胎没热起来….那个冲出赛道的也直接预约拖车送回店里检查去了。

image-20250526100105316

这是之前一个车友进石子地以后的情况,地上很多石头,清了两次才弄干净,这种情况Ultra会员可以免费处理,还是挺好的。

车友会

官方一直没有车友会,找个其他人也联系不到,给你拉群,就只拉你一个,我服了。我自己组,珠海一天就遇到10个Ultra,遇到一个我拉一个。

有需要进群的可以找我拉进去

漂移

漂移场地找不到,之前有一个中山的三角漂移场,不过好像也倒闭了?现在也联系不到了。

DDD漂移俱乐部

image-20250517230145332

DDD漂移俱乐部在广东省珠海市快泊停车场,看了下场地也很小,不如三角漂移场,自由玩价格还行,但是体验价格有点贵的离谱了。更有性价比的地方,深圳附近再没听说了,大概就是这样吧

ZIC漂移

麻涌漂移

麻涌赛车场,漂移500,4h

image-20250601121158622

还有漂移教学的价格,挺贵的,不过如果能教会还是挺不错的。

其他

其他正经赛车场好像都有一块区域给漂移使用,比如福岗赛车场,珠海赛车场,但是具体收费?体验什么的好像都没有说明,等我去了看过再补充

Summary

国内这个赛道信息有点难找,普通人想进圈子都比较困难,本身安全设备也不能少,而且由于小众,价格下不去,玩车的的额外成本还真不少。

总体来看珠海ZIC是最适合Ultra去玩的,正规、总体价格相对也不贵,容错空间大,失误也比较难致命,培训体系都比较完整客观,可惜的是能去玩的时间比较少。

Renode仿真STM32H7

2025-05-19 00:00:00

Foreword

之前做了QEMU模拟运行FreeRTOS,模拟STM32,但是毕竟不是官方QEMU,对于嵌入式这边的芯片或者设备模拟还是差一点。

https://www.qemu.org/docs/master/system/arm/stm32.html

Renode比较知名的就是用来模拟物联网设备,这种设备往往都弱一些,MCU这种比较多。

具体关于这两个说法有很多,谁更合适还是要实际用一用,体验一下才行

Renode

https://renode.io/

https://github.com/renode/renode

Renode 的指令模拟器使用 C 语言编写,外设模拟器使用 C# 语言编写,兼顾了运行效率和开发效率.

image-20250519163959004

Windows下直接安装即可,启动以后是一个命令行程序,这里可以加载我们的模拟固件

测试

start @scripts/single-node/stm32f746.resc

不建议跑这个例子,只是个输出helloworld,超级卡

start @scripts/single-node/stm32f746_mbed.resc

image-20250519164918218

启动以后就能看到输出了

stm32f746.resc文件解析

# 定义仿真平台和描述
:name: STM32F746
:description: This script runs Dartino on STM32F7 Discovery.

# 创建仿真机器
using sysbus
$name?="STM32F746"
mach create $name

# 加载平台描述
machine LoadPlatformDescription @platforms/boards/stm32f7_discovery-bb.repl

# 配置显示和分析器
# 设置LTDC(LCD-TFT显示控制器)在仿真中的虚拟帧率为每秒100帧;
# 详细解释如下:
# ltdc:指的是仿真平台中的LTDC外设(LCD-TFT显示控制器);
# FramesPerVirtualSecond:表示“每虚拟秒的帧数”,即仿真环境下LTDC每秒刷新多少帧;
# 100:具体的帧率数值,这里设置为100帧每秒;
# 作用:
# 在Renode仿真环境中,LTDC的显示刷新速度会按照这个帧率进行模拟。这样可以控制仿真中LCD显示的流畅度和性能,便于调试和观察# 显示效果;
# 总结:
# 这条指令就是让仿真的LTDC每秒刷新100帧,用于控制虚拟LCD的显示速率;
ltdc FramesPerVirtualSecond 100

showAnalyzer usart1
showAnalyzer ltdc

# 指定要加载的固件,需要elf,而不是bin
$bin ?= @https://dl.antmicro.com/projects/renode/dartino-lines.elf-s_486816-cd8876ab9de60af779f4429dfe16c79bf831b84d


# 可以在模拟启动以后开启Gdb,这样就能直接接入进行调试
# machine StartGdbServer 3333 true

# 定义reset宏
macro reset
"""
    sysbus LoadELF $bin
"""

# 自动运行reset宏
runMacro $reset

platforms/boards/stm32f7_discovery-bb.repl,关于硬件的描述在本地就有,看一下具体内容

using "platforms/cpus/stm32f746.repl"

phy: Network.EthernetPhysicalLayer @ ethernet 0
    Id1: 0x0007
    Id2: 0xC0F1
    AutoNegotiationAdvertisement: 0x00A1
    AutoNegotiationLinkPartnerBasePageAbility: 0x001

phy1: Network.EthernetPhysicalLayer @ ethernet 1
    Id1: 0x0007
    Id2: 0xC0F1
    AutoNegotiationAdvertisement: 0x00A1
    AutoNegotiationLinkPartnerBasePageAbility: 0x001

touchscreen: Input.FT5336 @ i2c3 0x38
    isRotated: true
    MaxX: 480
    MaxY: 272
    -> gpioPortI@13

可以看到这里定义了两个phy给以太网用,还有一个触摸屏,使用的是i2c3的接口,地址0x38,大小,使用的GPIO

使用外设指令,可以查看当前设备的外设和地址

peripherals

image-20250519175919143

STM32H7 模拟

由于官方没有给h7的resc文件,我们就模仿f7写一个

:name: STM32H743
:description: This script runs demo on STM32H743.

using sysbus
$name?="STM32H743"
mach create $name

# 由于没有h7的board 所以这里用cpu模拟
machine LoadPlatformDescription @platforms/cpus/stm32h743.repl

# 模拟所有串口,注意串口名称可能不同
showAnalyzer usart1
showAnalyzer usart2
showAnalyzer usart3
showAnalyzer uart4
showAnalyzer uart5
showAnalyzer usart6
showAnalyzer uart7
showAnalyzer uart8

$bin ?= @platforms/bin/stm32h743.bin

macro reset
"""
    sysbus LoadELF $bin
"""

runMacro $reset

启动测试

start @scripts/single-node/stm32h743.resc

image-20250519184611816

其他指令

Hook

在访问特定外设进行读取后执行 Python 脚本

(machine) sysbus SetHookAfterPeripheralRead gpioPortA "print '%s peripheral has been accessed to read'"

在访问特定外围设备进行写入之前执行 Python 脚本

(machine) sysbus SetHookBeforePeripheralWrite peripheral "print '%s peripheral has been accessed to write'"

include

include可以包含多个模拟器,启动的时候就会都启动,如果是多芯片模拟就比较适合

include @scripts/single-node/quark_c1000.resc

模拟传感器

Renode里有模拟传感器数据的方式,相当于是你给一个数据表,类似CSV结构的,然后指定好接口,频率什么的,硬件就可以直接从这个表中读取到对应的传感器数据了

https://renode.readthedocs.io/en/latest/basic/resd.html

传感器本身的寄存器或者配置,这个机制需要额外去实现,官方有具体的例子

https://github.com/renode/renode-infrastructure/blob/3f1abde88ac5a2dae326b77ab91892f335e78f80/src/Emulator/Peripherals/Peripherals/Sensors/ADXL345.cs

看起来还是比较简单的,就是列出来可能会用到的寄存器,然后实现他的读写,数据寄存器需要额外的一个喂数据接口即可。

大部分外部传感器可以仿照这个来,只要补充寄存器定义和某些返回数据的接口即可

Summary

这个是打印机固件仿真逆向的项目

https://github.com/nviennot/stm32-emulator?tab=readme-ov-file

There’s some existing work in the STM32 emulation space:

  • Mini404 emulates the Prusa Mini. Quite a feat. See the project’s hw/arm/prusa for the peripherals.
  • Qiling emulates all kinds of devices, including STM32s. It would be a good candidate, but wasn’t fitting the bill because 1) it’s written in Python, and is very slow. 2) It doesn’t support what I really want which is tracing in registers that I care about.
  • Renode: Emulate all sorts of devices, written in C#. The configuration files are finicky, and it’s overall pretty slow. I didn’t like it.
  • Tinylabs’ flexsoc-cm3: This is Elliot’s project to have the real stm32 peripherals to be accessible directly to a host that is emulating a CPU. I haven’t tried it, but it looks promising.
  • Use GDB and single step everything. That might be too slow.

前人的经验,主要是嫌弃模拟比较慢

Proteus的仿真也很常见,但是也只适合小型程序仿真,不适合复杂程序。而且绑定了硬件整体也必须得用Proteus才行,两边要配合起来,实际现实中用的还是比较少。可能是以前的PCB比较贵、周期长,没验证好直接打板成本很高吧,所以才有Proteus的仿真,但是现在速度快、成本低,完全用不到。

https://www.arm.com/zh-TW/products/development-tools/simulation/virtual-hardware

还有一个是ARM官方的虚拟化硬件,不过这个东西没有实例,也不知道具体细节是什么样的

比较复杂的是实现外设仿真,这个部分还得看怎么处理

Quote

https://github.com/silent-rain/stm32f103-tutorial/blob/master/docs/Renode%E4%BB%BF%E7%9C%9F%E6%A8%A1%E6%8B%9F.md

GPU相关常识

2025-05-16 00:00:00

Foreword

GPU相关一些基础建设的常识

GPU CPU NPU TPU

TPU,张量处理单元,主要是进行矩阵乘法计算

NPU,其实类似TPU,但是他是一种定制的计算规则,比如矩阵先乘后加,先加后乘,或者是更复杂的乘加乘加等等,相当于是定制化的计算单元,他是有适用的局限性的。如果专门为某个算法而生,那么这个算法就能吃满硬件加速,远超CPU或者TPU等其他方式实现的计算速率。

GPU,主攻并行计算,常常需要CPU指挥,广义上GPU是包含了TPU、NPU的,所以主力是强大的专业算力。

CPU,主攻逻辑运算,广义上CPU是可能会包含NPU和TPU,GPU的,但是多而不精,遇到一些专业问题,还是得专业的来搞。

但是,其实现在GPU的广义定义可能又发生改变了,英伟达新系列已经把一个小CPU作为协处理器融入到了GPU芯片中,这样GPU里就会包含CPU,因为在AI计算力,CPU不是大哥了,对于CPU的需求不是那么高,那么直接融一个ARM系列的GPU进去,显然是十分容易的。而且本身英伟达以前就做过客户端的ARM系列的CPU,这算是老树开新花了。

算力局限

问一个模型,如果可以给无尽的资源,那么这个模型的训练、运行效率会被什么东西卡住。

目前来说,主要被限制的大概就是三个地方,GPU算力TOPS,GPU显存大小GB,GPU显存速率(如果显存无限大,可能没这个事情)。

粗浅的可以把模型分为训练和推理两个阶段:

  • 训练阶段,主要吃GPU算力,显存大小
  • 推理阶段,主要吃显存大小、显存速率

训练相对推理来说,是更需要资源的,基本什么东西都要更好,更高的

推理阶段,往往是为了高并发,服务大规模使用者,而需要更大规模的GPU集群,但是模型本身可能只需要单GPU就能运行了。

NvLink、NvSwitch、NvLink Switch

image-20250516102537446

NvLink,早年的NvLink主要是可以让双卡之间直接进行通信(NVLink Bridge),可以共享显存,而不需要走PCIe通道,让别人帮忙转发消息,这样速度非常快

img

这样速度可以达到双向900GB/s,远超内存等速率,但是此时NvLink只能双卡,双卡的规模面对巨型AI来说,还是太小了,于是乎就有了后续NvSwitch。

img

NvSwitch,就让原来的NvLink从双卡拓展到了8卡,8卡之间可以互相通信共享显存了。NvSwitch可以认为类似网络中的交换机,但是它实际上一个芯片模块,是直接在GPU主板上的。到了这个阶段,还是无法满足超级大显存的需求,于是乎又有了NvLink Switch。

NvLink Switch,他是真的变成了GPU的交换机,他变成了一个独立设备,用来跨主机连接不同的GPU集群。

除了NvLink这种英伟达自家的集群方案,还有一种就是通过网络来组集群,只是这种方式速度要比英伟达的方案慢一些

PCIe,HBM,DDR,NvLink,Ethernet

主要是说明数据链路级别的瓶颈

PCIe,目前最新是6.0,但是还没有实物,5.0才刚落地,速率大概是32GT/s,就算是6.0也才64GT/s,单通道是大概是7.876 GB/s,如果使用更多通道就可以*n,比如16通道就能达到126GB/s,单向速率也就是63GB/s。

DDR,目前最新是6.0,还是没实物,5.0落地一段时间了,速率大概是12800MT/s‌,明显比PCIe慢了许多

HBM,目前最新是3.0,速率大概是819 GB/s,比PCIe和DDR都要快很多,但是3.0还没落地,现在还是2E

阶段,速率大概是461GB/s,所以目前是GPU的首选内存

NvLink,起步就900GB/s了,甚至比HBM还快

Ethernet,目前落地的200Gb/s的网卡,只能达到25Gb/s的传输速率,整体比PCIe还是要慢一些的。

所以如果组集群或者涉及到多个GPU服务器之间通信,最后的瓶颈往往都落在了这个网络和GPU到PCIe的头上

img

算力架构、CUDA、ZLUDA

抄个表格,这里只说了英伟达和华为,其实还有AMD和一些其他厂商,只是规模比起来有点小而已

NVIDIA HUAWEI 功能
GPU NPU/GPU 通用并行处理器
NVLINK HCCS GPU 卡间高速互连技术
InfiniBand HCCN RDMA 产品/工具
nvidia-smi npu-smi GPU 命令行工具
CUDA CANN GPU 编程库
DCGM DCMI GPU 底层编程库/接口,例如采集监控信息

image-20250516111129773

比较关键的就是CANN/CUDA,他整体定义了整个GPU算力的计算逻辑,或者说你能发挥多少GPU算力,都取决于这里怎么实现。

不同的模型或者算法,底层计算逻辑可能是不一样的,需要结合硬件对算法进行优化、加速,那么英伟达就提出来了一种基于英伟达GPU的通用接口,只要你按照这个逻辑去调用GPU,就能完整发挥这个GPU的硬件性能,否则每次算法或者模型都需要对不同的GPU做适配,这不得累死。

CUDA就成了英伟达的护城河之一,CUDA在整个领域中占比可能有90%之多,之前AMD搞得兼容CUDA的兼容层,都是为了想办法抢一部分他的客户,你不兼容CUDA,那你就要重新写底层优化,那就不具备通用性,那谁愿意用呢。

NVIDIA GH200

img

到GH200 这里,英伟达就意识到了之前服务器的局限,这里直接用自己的CPU和GPU,然后把内存也内置进去,然后这些内部访问都是可以直接通过NvLink的,不走什么PCIE了,相当于抛弃了传统服务器那一套东西,我自己玩了,充分降低了整个系统间互相通信的延迟。

img

基于GH200 构建了一个机柜NVL32,他直接就能提供19.5TB的内存+显存,而且任意一个GPU都可以访问,而且还能再扩展显存。这个机柜还能再次组成集群,从而适用于超大规模的模型的训练和推理

Summary

后续有新发现再补充

Quote

arthurchiao.art写的很详尽,拿来入门很适合,作者应该是携程的赵亚楠,看他的blog里基础和翻译文比较多,下面几篇基础都写的挺好的,值得一看

https://arthurchiao.art/blog/gpu-advanced-notes-1-zh/

https://arthurchiao.art/blog/gpu-advanced-notes-2-zh/

https://arthurchiao.art/blog/gpu-advanced-notes-3-zh/

https://arthurchiao.art/blog/gpu-advanced-notes-4-zh/

https://developer.nvidia.com/zh-cn/blog/nvidia-nvlink-and-nvidia-nvswitch-supercharge-large-language-model-inference/

https://www.nvidia.cn/data-center/nvlink/

https://www.bilibili.com/video/BV1SZdwYTEM8