洛阳兼职网站,网站 选项卡 图标,互联网企业网站,搜索引擎广告名词解释这是转载的一篇文章#xff0c;文章主要内容是Linux合入了一个国产芯片k210的代码#xff0c;虽然这个芯片不是很强大#xff0c;但是对于学习来说非常有意义#xff0c;而且#xff0c;还有人在这个开发板上移植了Linux 0.11。今天早上我在查阅 Linux 内核邮件列表的时候… 这是转载的一篇文章文章主要内容是Linux合入了一个国产芯片k210的代码虽然这个芯片不是很强大但是对于学习来说非常有意义而且还有人在这个开发板上移植了Linux 0.11。今天早上我在查阅 Linux 内核邮件列表的时候看到了一封 Linus 本人的回复这封邮件的大概意思是说Palmer Dabbelt 向 Linus 大神发了一个 Linux 内核补丁的合并请求(PR), 但是大神发现这个 PR 有问题准确的说是不规范——其中有一条提交里面混杂了一个其他功能的修改而这个修改和他对应的 commit message 的描述不一致。一般我们在软件开发的流程中有一个朴素的版本管理哲学开发者的提交要尽量干净简单。开发者要把自己的代码修改按照功能拆分成一个个相对独立的提交一个提交对应一个功能而且要在对应的 commit message 里面描述清楚。在这个 PR 中有条提交里面确实混杂了其他的一个修改所以 Linus 说 Palmer 的代码树不干净。不过让人出乎意料的是 Linus 大神没有直接把这条 PR 打回去而且自己亲自修改了里面的问题然后把他们合并到 Linux 5.7 mainline 上了。大神以前在 Linux kernel 开源社区是出了名的暴躁经常因为开发者提交的一些看不顺眼的代码怒发冲冠在邮件列表了直接回复 F**K 啊骂对方 brain damaged 啊什么的。看来经过 2018 年的闭关自省后大神确实变的温润如玉了很多。这是我们从这封邮件里面看到的开发规范问题其实对于很多爱好 RISC-V 或者 K210 SOC 的开发者来说这封邮件还隐含着另外一个十分重要的信息。这个 PR 的提交者 Palmer Dabbelt 也非等闲之辈他 2017 于伯克利大学计算机硕士毕业然后进入 RISC-V 领头羊 SiFive在这家公司他领导实现了 Linux、GCC、glibc 等基础组件对 RISC-V 架构的支持是这些开源项目在 RISC-V 分支的 maintainer。去年他从 SiFive 离职加入了 Google Android 部门。Palmer 的这个 PR 其中重要一部分内容是向 Linux 内核添加对 K210 SOC 的支持。K210 是中国一家叫做嘉楠耘智的公司(嗯他们最开始是做矿机的现在开始做 AI和比特大陆、亿帮国际合称矿机三巨头并于 2019 年在纳斯达克上市)开发的 SOC采用 RISC-V 架构 双核 CPU、64 位台积电 28 nm 制程运行频率能到 400 MHZ还带有神经网络加速器 KPU算力能到 1TOPS、主要面向音视觉等 AI 和 IOT 领域。总体来说 K210 还是一颗 MCU 级别的芯片只有 8M 的 SRAM无法外接大容量的 DDR 等存储器固态存储接口好像也只有 SPI 接口可以接 SPI Nor Flash 这种小容量的存储所以在设计定位上这是一颗只适合运行 RTOS 的 MCU。不过还是挡不住很多充满探索精神的 Linux Hacker想尝试在 K210 上运行 Linux毕竟现在 RISC-V 这么火可是能跑 Linux 的却不多SiFive 到是有一款能运行 Linux 的开发板叫做 HiFive Unleashed但是价格让人望而却步。K210 的 8M SARM 以及友好的价格让广大爱好者看到了希望我还在 Github 上看到有人移植了 Linux 0.11 到 K210 上不过在这个 Linux 5.X 的时代0.11 还是不够刺激。所以我立刻更新了一把最新的 Linux mainline 代码查到了关于 K210 的相关提交可以看到代码比较简单只有 5 个补丁可以得到如下信息支持的功能也比较简单只支持 UART 通信也就是说按照目前的状态可以运行一个能够通过命令行交互的 Linux 最小系统。目前的代码支持勘智的 KD233 和 Sipeed MAIX Dan 和 Sipeed MAIXDUINO 三款开发板其他的基于 RISC-V 开发板我估计也能跑顶多只要确认下 UART 口的差异。不支持 MMU虽然从 Github 上找到的一些代码可以看出 K210 上面搭载了基于 SV39 标准的 MMU但是勘智的官方文档并没有提及任何和 MMU 相关的信息。这也是国内一些 SOC 设计公司需要改进的地方不能总是不愿意开放和自己芯片相关的详细文档。不过幸运的是现在的 Linux 已经支持 nommu 架构的处理器。仔细查阅提交的代码可以发现K210 是基于 SiFive 和 UC Berkeley 开源的 Rocket Core 实现的这款开源的 Rocket Core 在业界很受欢迎流片达十多次性能和 Arm Cortex-A5 相当。因为 Palmer 在 Sifive 工作的时候已经把 RISC-V 的基础支持代码提交到了 Linux mainline所以这次朝 Linux mainline 添加对 K210 这款 SOC 的支持就简单了很多可以复用大量 Palmer 提交的基础代码。目前从提交记录还可以看到这一系列补丁大部分是西部数据的工程师贡献的西部数据目前是 RISC-V 处理器的超级支持者他们已经在西数的大量产品中使用 RISC-V 处理器。去年我就看到一份西数工程师的 PPT描述在 K210 等处理器上运行 Linux没想到他们这么快就把相关成果提交到 Linux mainline 了还是很让人激动的。我进一步查阅了 RISC-V 的内核邮件列表发现这一系列补丁在提交的过程中受到了很多极客的关注有很多Geek 表示愿意进一步为 K210 贡献 Linux 的支持补丁包括 LCD 屏幕、SPI 接口的 SD 卡以及 UART 接口的 WIFI。这使得这款 SOC 具有了很高的可玩性这就是开源的力量在目前这种状态下用 K210 来学习基本的 Linux 系统移植还是很不错的因为它简单不涉及太多复杂的东西可以让我们快速掌握给一款芯片移植 Linux 所需要做的最基本工作堪称一个完美的 Linux 最小系统学习平台除了 SRAM 太小——只有 8MB。另外如果有同学对西数那份在 K210 上运行 Linux 的 ppt 感兴趣的话可以在公众号后台发送关键字 k210 获取下载链接。 回复「 篮球的大肚子」进入技术群聊回复「1024」获取1000G学习资料