cuốn sách gpt4 ai đã làm

Linux, hỗ trợ các biến thể bo mạch hơi khác nhau, cùng SOC

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 23:54:52 27 4
mua khóa gpt4 Nike

Tôi hiện đang sử dụng bản dựng i.MX6 và linux của freescale. Bo mạch của chúng tôi hơi khác một chút và tôi muốn tìm một ví dụ hay hoặc có thể là một ý tưởng về cách dễ dàng hỗ trợ một vài biến thể khác nhau của bo mạch trong nhân linux.

我想做的一件事就是尽可能避免成堆的 if 语句。糟糕的是(在外包之后)我们的整个板初始化基本上都在一个文件中。看起来很棒。但仔细观察后发现这很正常......

我的第一个想法是借鉴我们之前的 WinCE 构建,我们使用一个结构来保存关于平台的所有信息(gpio 映射、特殊/不同的硬件),所以当板初始化运行时它会读取一个平台 ID,然后动态初始化所有信息。事实证明这很……困难,因为所有内容都作为静态 some_device_data 数据 [] 预先烘焙。因为它都是预烘焙的,所以很难在另一个 init 中访问。还感觉……从文件中导出所有内容有点奇怪。

我的第二个想法是将电路板初始化复制到两个单独的初始化中。从主板初始化我可以调用我需要的任何一个但是......似乎有很多重复并且变得难以维护。

我想首先要问的重要问题是... Linux 是否提供了一种智能方式来管理板的小变体。我知道我们的产品将经历许多小的迭代,并且能够为所有内核采用一个内核很重要。

如果没有聪明的方法,那么最不痛苦的是什么?如果声明似乎是最痛苦的,因为我们的上一个产品在其生命周期中经历了大约 20 种不同的变化(这些变化得到了很长时间的支持,并且经常发生生命周期结束的情况)

câu trả lời hay nhất

你应该看看device tree :

设备树是一种描述硬件的数据结构。给定正确的设备树,相同的编译内核可以支持更广泛的体系结构系列中的不同硬件配置。 Linux 内核可以读取 ARM、x86、MicroBlaze、PowerPC 和 SPARC 架构中的设备树信息。对于 ARM,使用设备树已成为所有新 SoC 的强制要求。

一些链接:

Arm support in linux kernel

eLinux

Arm SoC Check-List

Device Tree for Dummies

关于Linux,支持略有不同的电路板变体,相同的 SOC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21542903/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress