「一生一芯」 0.0-像内行人一样提问
提问是一种重要的获取知识的手段,但这不代表它可以被滥用。毕竟,没有人愿意花时间帮助个别人解决在网上一搜一大把的,解决方案唾手可得的问题。遑论有深度、有壁垒,至少这得是一个有价值的问题,是经过了思考和努力,是让帮助解决问题的人不会感到自己的行为廉价的问题。
问什么?
由自己问出这个问题之前,不妨先想一下:我在什么样的条件(机器、系统、框架等)碰到了这个问题?出现问题之前我做了什么?这个问题能否再复现出来?如果条件是普遍的,那么大概率这个问题是被问过,也被解决过的。此时应当先去好好搜索一下,或者查阅一下手册。有条件的,去读一下源码。(私以为有能力读源码的,也问不出很sb的问题来)
怎么问?
经过尝试,仍然解决不了问题,那么就怀着一颗学徒的心,向神通广大的群友/网友提问吧。至少,不要让帮助自己的人觉得麻烦;至少,让别人觉得自己是有诚意解决这个问题的,不要指望着「皇帝不急太监急」;至少,把话说清楚,让人知道自己碰到了什么样的问题,不然爱莫能助,群友水平再高,也不是能算卦算准的。
在此之后?
无论怎么讲,乐于助人是一种高尚的美德。别人没有义务帮忙把问题彻底解决,也许只是提供一个思路,但有时候足够了。愿意详细分析讲解乃至亲手去复现问题的人,是可遇不可求的,不要期望太多。统合新加入的信息,再去找一找问题,乃至复盘一下。更重要的是,要给对方一些反馈。不论是满足一下对方小小的虚荣心,还是从马斯洛需求理论上讲,被需要、被认同,都有利于自己和其他人继续通过这样的渠道再次获得帮助。
走运的是,最近我刚好经历了一次这样有意义的过程。
事情的契机是我在使用HS-Link Pro
以SWD
连接方式,通过OpenOCD
为STM32G431
烧录程序时,OpenOCD
在加载配置文件后提示CMSIS-DAP:SWD not supported.
在搜索、检索相关群文件后,我将HS-Link Pro
升级至最新版本固件,并更新了上位机,但这无助于解决最初的问题。于是我整理了一下过程,附带操作系统、OpenOCD
版本和固件版本等信息,向群友提问。当天,不少热心群友参与了讨论,最终的结论是:由于HS-Link Pro
实际上是CMSIS-DAPv2
,且版本较新,所以我在apt
安装的OpenOCD
版本太低了。因此,我从源码重新安装了最新版本,但很快遇到了新的问题,OpenOCD
无法找到HS-Link Pro
这个设备。这又引出了udev
的规则配置,按照usb设备插入时的Vendor ID和Product ID进行设备事件的配置,也在群友的帮助下顺利解决了。这个过程中,我接触到了之前从未听过的新领域,扩大了自己的知识储备。
如果想要通过提问来获得新知识,不妨换位思考,想想如果自己是回答问题的人,更愿意回答什么样的问题吧。