Я только начал работать в новой компании, и я новичок во встроенном мире.
Они дали мне задание, я выполнил это, и оно работает, но я не знаю, правильно ли я это сделал.
Я опишу задачу и то, что я сделал.
Меня попросили спрятать небольшой кусочек DDR от ОС Linux, затем какая-то функция HW может записать что-то в этот маленький кусочек памяти, который я сохранил. После этого мне нужно будет прочитать этот маленький кусочек памяти в файл.
Чтобы скрыть часть DDR от Linux, я просто изменил аргумент памяти Linux, чтобы он соответствовал реальному объему памяти (необходимый мне размер + небольшой размер для безопасности). У меня есть идея и идея для драйвера, который я опишу через секунду от этого поста .
После этого Linux видит меньше памяти, чем HW, а верхняя часть DDR скрыта от ядра, и я могу без проблем использовать ее для хранения.
Я думаю, что я сделал эту часть правильно, а не то, что я могу сказать о следующей части.
В следующей части, чтобы иметь возможность прочитать этот фрагмент DDR, который я сохранил, я написал драйвер устройства Char, он работает, он читает блок DDR, который я сохранил в файл, кусок за куском, каждый кусок имеет размер не больше, чем какой-то Значение, которое я решил, не может сделать это в одной копии, потому что это потребует выделения большого буфера, и у меня недостаточно места для этого.
Теперь я прочитал о блочном устройстве и начал думать, что, возможно, блочное устройство лучше подходит для моей программы, но я не уверен в этом, потому что, во-первых, оно работает и, если оно не сломано ..., во-вторых, я никогда не писал драйвер блочного устройства. Я также никогда не писал драйвер char-устройства до того, который описал ранее, поэтому я не уверен, что пришло время использовать блочное устройство поверх char-устройства.