Программно получить информацию о типе и размере памяти ПЗУ в Linux - PullRequest
1 голос
/ 01 февраля 2012

Мне нужна информация из моей программы на C об общем объеме флэш-памяти и типе флэш-памяти на моем встроенном Linux. Я вижу эту информацию, когда ядро ​​загружается, но не могу найти другого способа получить их. Возможно ли это вообще?

Ответы [ 4 ]

1 голос
/ 02 февраля 2012

Я предполагаю, что ваше ядро ​​Linux новее 2.6, и вы можете проверить / proc / mtd *** для общей информации.

Если этого недостаточно, проверьте исходный код mtd-tools: mtdinfo.c

http://gitorious.org/0xdroid/external_mtd_utils/blobs/e783e75e09b4a0a519665afd7bdeaf2985e7a09c/ubi-utils/src/mtdinfo.c

проверьте эти функции print_XXXX_info. Вам также нужна некоторая внешняя библиотека, чтобы это работало.

API-интерфейс ядра для интерфейса mtd время от времени меняется, поэтому убедитесь, что у вас установлена ​​правильная версия для вашего ядра.

1 голос
/ 01 февраля 2012

У вас есть / proc / meminfo? Это даст вам необходимую информацию?

0 голосов
/ 01 февраля 2012

Посмотрите на ядро ​​и / или исходный код загрузчика, чтобы увидеть, как он это делает при загрузке.Этот метод, вероятно, зависит от вашего оборудования.

0 голосов
/ 01 февраля 2012

да. Это возможно с помощью утилиты dmidecode из linux.Вот пример кода

#include <stdio.h>  
#include <stdlib.h> 
int main()  
{  
    char str[100]  = "dmidecode | grep -i 'ROM Size'";  
    system(str);  
    return 0;  
}

, он даст вам размер ПЗУ, а если вы не указали размер ПЗУ, то он также предоставит другую информацию BIOS.если в вашем встроенном Linux нет утилиты Dmidecode, вы можете получить исходный код здесь .Вы также можете проанализировать ту часть исходного кода dmidecode, которая предоставляет информацию о ПЗУ, если вы не хотите использовать системную команду и не хотите копать другую информацию BIOS.

...