Попытка понять копирование изображения uboot

В Unix, большинство объектов, которые вы можете прочитать и писать - обычные файлы, трубы, клеммы, необработанные диски - все это сделано для напоминания файлов Отказ

Программа, такая как CAT , читает из его стандартного ввода, такого как это:

n = read(0, buffer, 512);

, который просит 512 байтов. N - это количество байтов фактически читает или -1, если есть ошибка.

Если вы сделали это неоднократно с обычным файлом, вы получите кучу 512-байтовых чтений, то несколько короче читается на хвостовом конце файла, то 0, если вы пытались прочитать мимо конца файл. Так, CAT будет работать до n n n не является <= 0.

Чтение от клемма немного отличается. После того, как вы введете в строку, расторженном в введите клавишу , READ возвращает только эту строку.

Есть несколько специальных символов, которые вы можете ввести. Один - Ctrl-D . Когда вы вводите это, операционная система отправляет всю текущую строку, которую вы набрали (но не в Ctrl-D сама) к программе, выполняющей чтение. И вот середина: если Ctrl-D является первым символом в строке, программа отправляется строка длины 0 - так же, как программа увидит, будет ли она до конца обычного файл. CAT Не нужно ничего делать по-другому , будь то чтение из обычного файла или терминала.

Другой специфический характер Ctrl-Z . Когда вы вводите его, в любом месте в строке операционная система отбрасывает все, что вы набрали до этой точки, и отправляет сигнал SIGTSTP в программу, которая обычно останавливается (паузы) и возвращает управление в оболочку.

Так что в вашем примере

$ cat > file.txt
pa bam pshhh<Ctrl+Z>
[2]+  Stopped         cat > file.txt

вы набрали некоторые символы, которые были отброшены, то CAT был остановлен, не написав ничего до его выходного файла.

$ cat > file.txt
pa bam pshhh
<Ctrl+Z>
[2]+  Stopped         cat > file.txt

Вы напечатали в одной строке, который Cat прочитал и написал в свой выходной файл, а затем Ctrl-Z остановлен CAT .

0
31.03.2014, 23:07
2 ответа

Он копирует ядро ​​и initrd, хранящиеся во флэш-памяти, в оперативную память перед запуском Linux. Команда cp задокументирована в cp - memory copy

Исходные адреса - это области во флэш-памяти, которые не содержат код u-загрузки флэш-памяти. Адреса назначения - это области в ОЗУ, которые u-boot не использует для своего собственного кода / данных при выполнении.

1
28.01.2020, 02:37

Я не встречал определения синтаксиса команды копирования флэш-памяти QSPI в ОЗУ, но похоже, что шаблон

cp src_addr dst_addr copy_size

Вторая копия предназначена для дерева устройств ( devicetree.dtb ), которое просто по совпадению имеет размер (0x8000), который совпадает с начальным адресом ядра Linux (0x8000) в ОЗУ.

1
28.01.2020, 02:37

Теги

Похожие вопросы