Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Зугрузка с Flash памяти...


Автор: val 25.3.2004, 10:10
Привет всем!
В наличичии имеется отладочная плата с процессором. На ней же находится флешь память. Не подскажет ли уважаемая публика, как осуществить такую штуку, как загрузка Linux с флеша. Также в наличии имеются, конечно, исходники ядра Linux 2.4. ... Также интересует общая технология обеспечения загрузки с флеша...
Ценными будут любые замечания и комментарии...

Автор: PILOT 25.3.2004, 18:58
Хм...
вопрос интересный, особенно если будут указан процессор, тип флэш, тип интерфейса между ними, тогда можно будет совместно с тобой решить проблему.

СУВ.

Автор: val 26.3.2004, 10:21
Цитата
Хм...
вопрос интересный, особенно если будут указан процессор, тип флэш, тип интерфейса между ними, тогда можно будет совместно с тобой решить проблему.


Спасибо, скоро дам подробное описание...

Автор: maxim1000 26.3.2004, 11:59
могу дать пример для процессора Blackfin от Analog Devices smile.gif
скорее всего, у тебя нечто другое (небось от Motorol'ы, но, возможно, какие-то общие принципы есть

есть два режима загрузки из Flash:
1. просто делается jump на начало Flash, и начинается выполнение всех инструкций, которые там записаны
2. первое слово интерпретируется, как количество размер блока, который надо загрузить, этот блок (он начинается со второго слова) загружается в память и делается jump на начало области памяти, куда все это было загружено
обычно используется второй способ
этот блок, который загружается, представляет собой микрозагрузчик
он работает так:
1. проводит небольшую инициализацию
2. переписывает себя в конец оперативной памяти
3. начинает читать Flash по кусочкам
структура кусочка: размер, адрес, куда его записать, и сами данные
4. после прочтения очередного блока он его записывает, куда надо
5. один из блоков записывается в начало процессорной памяти, туда делается jump, когда все закончится


Автор: val 26.3.2004, 17:48
Спасибо большое, maxim1000. Общее понимание процесса у меня уже имеется.

Скорее всего мне придется делать примерно так:
Напишу собственный загрузчик, который после запуска платы будет:
1. Инициализировать FlexBass (пока для меня этот термин остается черным ящиком);
2. Инициализировать память процессора.
3. Копировать и распаковывать сжатое ядро Линукса в память проца;
4. Запускать Линукс.

Флеш будет мапиться прямо в память проца...
Фух, план вроде бы ясен.

2PILOTIK:

Флешь - Am29LV128MH/L, от AMD и Fujitsu
Проц - Один из мотороловских, серии ColdFire
Интрефейс - FlexBass...

По прежнему жду ваших комментариев, как всё это делать...

Автор: PILOT 27.3.2004, 11:56
Может FlexBus?
Я видимо помочь не смогу, никогда не сталкивался (поэтому и сказал "вместе разбираться"), но вроде в мотороле ОЗУ 64К, как туда линукс загружать? или это специальная ужатая версия.
Кроме того распаковщик это тоже не так просто... если Флэш позволяет то лучше прямо нераспакованный Линух туда уложить.
И потом там же есть пакет встраиваемого сетевого ПО RTXC Quadros, в который входит операционная система реального времени и стек сетевых протоколов (IP, UDP, TCP, ARP, DHCP, ICMP, SNTP, HTTP и TFTP), зачем Линух?
А вообще посмотрел описание контроллера - сильно. Но для моих задач хватает пока и 8-ми разрядных (PIC,51,AVR и пр.)

СУВ.

Автор: maxim1000 28.3.2004, 10:54
Цитата
Скорее всего мне придется делать примерно так:
Напишу собственный загрузчик, который после запуска платы будет:
1. Инициализировать FlexBass (пока для меня этот термин остается черным ящиком);
2. Инициализировать память процессора.
3. Копировать и распаковывать сжатое ядро Линукса в память проца;
4. Запускать Линукс.

сомневаюсь, что придется делать все самому
надо бы хорошенько поискать в Интернете: какие-то примеры загрузчиков могут найтись
Цитата
вроде в мотороле ОЗУ 64К, как туда линукс загружать?

смотря, что понимать под ОЗУ
одно дело внутрипроцессорная память, другое - какая-нибудь SDRAM, прицепленная снаружи

Автор: PILOT 28.3.2004, 15:10
Так все-таки FlexBass или FlexBus?

СУВ.

Автор: val 30.3.2004, 09:54
Цитата
в мотороле ОЗУ 64К, как туда линукс загружать? или это специальная ужатая версия.


Имеется в наличии жирная SDRAM на 32 Мг... Именно поэтому обязательным будет её инициализация... Ну, а Линукс, конечно урезанный, так называемый Линукс для встроенных систем - UCLinux...

Автор: val 30.3.2004, 11:27
Цитата
И потом там же есть пакет встраиваемого сетевого ПО RTXC Quadros, в который входит операционная система реального времени и стек сетевых протоколов (IP, UDP, TCP, ARP, DHCP, ICMP, SNTP, HTTP и TFTP), зачем Линух?


Линукс бесплатная ОС с довольно-таки большими возможностями по прикрутке к ней драйверов для новой периферии и написания под неё приложений...

Автор: val 30.3.2004, 12:14
Цитата
Так все-таки FlexBass или FlexBus?


FlexBus...

Автор: smalcom 29.10.2004, 08:08
А вот у меня как раз одна из встахших проблем тоже грузануть Линух с флэша. Но флэш не простой, а прикручиваеться к мамке через IDE контроллер. Мамка EPIA формата Nano-ITX. Сама суть проблемы при загрузке когда должно быть
Loading....... и пошло поехало выктдывает
Loading 44 44 44 44 44 и так далее и ничего не грузиться дальше :stena . Есть мнение что флэш надо каким-то правильным образом форматировать. Может кто сталкивался с этой проблемой.

Автор: val 29.10.2004, 09:20
Мне кажется, что тип флеша не имеет значения. Нужно только чтобы в своё время загрузчику, лежащему в начале флеша передалось управления. Ну а на счет загрузчика - мы выбрали Colilo и не ошиблись, все заработало. Правда перековыряли его вдоль и поперёк. Задачка не простая, но решаемая... Если что, обращайся...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)