Перейти к содержанию
    

BlackFIN-532 - методы загрузки...

Как можно загрузить в BlackFIN-532 - uClinux ?

 

Щяс обрисую картину что бы был ясен вопрос:

Рисую схему щяс в PCAD и развожу плату... Накачал несколько схем с примерами, обложился.... уже неделю выискаваю что где и как и как должно быть у меня....

я делаю конечную плату, цифровой части устройства одного...

 

поднимал с нуля linux на arm9, но там хоть описанно как что и где.... много информации в инете....

тут же неясно много...

и нет, ни где конкретного описания, хоть поверхностного... 8(

(во всяком случае я искал и не нашел)

...вообще то маловато информации по загрузке BlackFIN-532...

а про загрузку в BlackFIN-532 uClinux - вообще ни нашел ничего...

 

помогите плз...

 

Теперь вопросы:

....недавно, вот здесь было обсуждение, довольно важное на мое усмотрение - http://electronix.ru/forum/index.php?showtopic=32438

Так вот, в приведенной ссылке сказано: что есть какой то глюк у BlackFIN при загрузке с AT45DBхххD

 

У меня как раз - для начальной загрузки BF532 в SPI Master Mode - используется только AT45DB642D

(без - AT25256, или она обязательна для загрузки? )

то есть, я рискую не загрузить свою плату вообще (если глюк при загрузке есть какойто....) ?!

 

если верить даташиту стр 154

BMODE[1:0] (Boot Mode)- RO

00 - Bypass boot ROM, execute from 16-bit-wide external memory

01 - Use boot ROM to load from 8-bit flash

10 - Use boot ROM to configure and load boot code from SPI serial ROM (8-bit address range)

11 - Use boot ROM to configure and load boot code from SPI serial ROM (16-bit address range)/

 

Планирую грузиться с AT45DB642D, я так понял что мне нужно выбирать режим загрузки BMODE=10

или если с AT25256 - то BMODE=11

 

вообще получится ли у меня загрузиться?

 

но,снова неясно много:

- как в AT25256 зашить программу?

- как в AT45DB642D зашить программу?

- Как записать uClinux?

- Может на какм то этапе можно обойтись JTAG программатором - ByteBlaster ?

 

Расскажите пожалуста попобробнее...

Спрашать неукого, человек который наработал какуюто базу по этому проекту уволился....

 

.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как можно загрузить в BlackFIN-532 - uClinux ?

 

http://docs.blackfin.uclinux.org/doku.php?...oot_on_blackfin

 

если верить даташиту стр 154

BMODE[1:0] (Boot Mode)- RO

00 - Bypass boot ROM, execute from 16-bit-wide external memory

01 - Use boot ROM to load from 8-bit flash

10 - Use boot ROM to configure and load boot code from SPI serial ROM (8-bit address range)

11 - Use boot ROM to configure and load boot code from SPI serial ROM (16-bit address range)/

скачайте новый даташит.

00 Execute from 16-bit external memory (bypass boot ROM)

01 Boot from 8-bit or 16-bit FLASH

10 Boot from SPI host slave mode

11 Boot from SPI serial EEPROM (8-, 16-, or 24-bit address range)

 

но,снова неясно много:

- как в AT25256 зашить программу?

- как в AT45DB642D зашить программу?

через jtag

или можно снаружи каким-нибудь программатором подлезть.

 

- Как записать uClinux?

через u-boot

 

 

- Может на какм то этапе можно обойтись JTAG программатором - ByteBlaster ?

ну не то чтобы прям именно byteblasterom но похожим адаптером.

http://download.analog.com/27516/frsreleas...matics_v0.8.pdf

 

http://docs.blackfin.uclinux.org/doku.php?...ort_igloo_board

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое!

Для начала - вполне исчерпывающе...!!!

 

пошел читать...

Если будет чтото не ясно - отпишусь....

 

.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня как раз - для начальной загрузки BF532 в SPI Master Mode - используется только AT45DB642D

 

Могу ошибаться но загрузчик проверяет сигнатуру serial EEPROM и именно для BF532 максимально что можно напрямую подключить по документации Analog Devices это AT45DB161 (исходники загрузчика есть в VDSP, можно посмотреть). Работу больших чипов памяти надо еще дополнительно проверять или мутить что то свое нестандартное. Предварительно убедитесь что у кого то это работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хорошую тему завели. :) У Вас, PrSt, ход мыслей один в один как у меня пару месяцев назад, и вопросы взникают одни и теже, правда вы задали их первей чем я.

 

Я забацал плату с BF532, наставил в нее памяти разных видов, повыводил интерфейсы, разъемы для JTAG. Платку сделали мне, закупил всю комплектуху, но собрать еще не успел. Банально, нет всех резистором 0603 :) Обошлось все в 50уе.

 

Тоже раздумывал как зашить епромку. Есть в Минске представители у которых JTAG этот фирменный за пару штук баксов. Попрошу пусть зальют мне бутлодер в епромку, а потом буду по RS-232 заливать во flash и грузится с нее. Отсюда планирую начать операционые системы изучать. Хотя вот не знаю, может тоже нужно было с ARMа начинать. Я, в отличие от вас, в Линухе полный ноль.

 

Предлагаю обсуждать продвижения в наших начинаниях.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пользуйте 537 -й не прогадаете :)

Раньше был 532 специально пришлось писать маленький загрузчик который во флешку U-boot прошивает(x-modem), и то получалось джитагом 5 минут :)

В серию девайсы пойдут замучаетесь :)

537-мой грузиться может по UART, время прошивки 1 минута на всё :)

Кстати про jtag писал где-то, что можно сделать просто ByteBlaster За 300 реблей, и немного доработать програмку прошивки. Чем платить 2К баксов :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пользуйте 537 -й не прогадаете :)

Раньше был 532 специально пришлось писать маленький загрузчик который во флешку U-boot прошивает(x-modem), и то получалось джитагом 5 минут :)

В серию девайсы пойдут замучаетесь :)

537-мой грузиться может по UART, время прошивки 1 минута на всё :)

Кстати про jtag писал где-то, что можно сделать просто ByteBlaster За 300 реблей, и немного доработать програмку прошивки. Чем платить 2К баксов :)

Расскажите пожалуйста попобробнее...

Что и как Вы делали на 532м?

Если можно - не упуская деталей и тонкостей и с ссылками, это много обяснит и разъяснит...

 

не могу я взять 537 -й !

вот http://www.analog.com/processors/blackfin/overview/IST.html

он BGA , я не умею еще разводить BGA да еше и многослойки... пока не научился...

по остальному подходит, но всеже - BGA

 

 

 

Могу ошибаться но загрузчик проверяет сигнатуру serial EEPROM и именно для BF532 максимально что можно напрямую подключить по документации Analog Devices это AT45DB161 (исходники загрузчика есть в VDSP, можно посмотреть).

к нестастью VDSP у меня нет... Вся надежда на даташит и linux...

Хотя вероятно загрузчик таки прийдется писать на VDSP в силу причины что там есть симулятор... его его нужно будет найти гдето... но это уже второстепенно...

 

Работу больших чипов памяти надо еще дополнительно проверять или мутить что то свое нестандартное.

А поподробнее пожалуйста с этого места?

Предварительно убедитесь что у кого то это работает.

Так вот это же я и делаю, спрашиваю - Верным ли путем я мысль кую? Или гдето что то пропустил...

 

Вы конечно не пинайте сильно но вопрос как мне какжется важный, а информации архи-мало... или всю нужно покупать в виде готовых решений...

 

А то понимаете ли какое дело:

...купили мы STAMP...

да и для начала там иная начинка...

и бутится с параллельной флэшки по ходу...

 

...Разобрались что к чему и как....

Подняли linux... Сделали на его базе что нам нужно... а толку то?

 

Нужно теперь делать свою плату на базе наработанного решения, уже с платы STAMP, а тут такая засада с загрузкой....

 

Вот я и прошу Вас вместе и дружно - зазъяснить не ясные, не понятные и нерешенные пока вопросы.

Тем более что как выяснилось - это пробел в знаниях в BlackFIN не только у меня.. Оказыается есть еще такие же люди.

 

.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати рекомендую вам вмесчто чипа, SMC чип DM9000 дешевле просто.

Загрузчик можно легко написать на gcc. :) На основе тогоже U-boot.

 

Вы конкретнее спрашивайте что вас интересует :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати рекомендую вам вмесчто чипа, SMC чип DM9000 дешевле просто.

Загрузчик можно легко написать на gcc. :) На основе тогоже U-boot.

Вы конкретнее спрашивайте что вас интересует :)

Вы конечто же простите меня, однако накой мне нужен DM9000 ?

это же езернет, его в 532м нетут попросту.... он есть в 537м...

но он как я уже говорил - он BGA, а это пока гвоздь предкновенья при рассмотрени его применения...

 

....что конкретно интересует - я же уже писал , чуть выше, или может не совсем ясно изложил суть проблеммы?

 

.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы много чего написали но не написали область применения.

 

Мы юзали на нём, SPI, SPORT, Eth

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы много чего написали но не написали область применения.

Мы юзали на нём, SPI, SPORT, Eth

Область применения - устройства?

Кажется мне, это не имеет значения особо, тем более что пока делается просто плата с АЦП... тоесть даже не устройство а плата, почти макетка...

и нужно на ней что бы был uCLinux, ...потому что уже есть наработски с ним под STAMP .

Тоесть устройства ни какого пока нет....

SPI уже занят - на нем висит скоростное устройство...

его занимать нельзя по полной программе.... + SPI DataFlash и больше нельзя ни чего вешать...

Eth - напроч отсутствует...

SPORT - пока изучаю что могет. (....но из увиденного мало что может пригидиться мне... На данном этапе...)

 

.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Загрузчик можно легко написать на gcc. :) На основе тогоже U-boot.

а попобробнее пожалуйста?

U-boot то же наверно должен стартовать с какого конкретного адресса ?

Детальнее можете разъяснить?

 

На самом деле мы рассматриваем такой вариан что бы использовать монолитную структуру программы...

stand alone (non-Linux) applications - тоесть то что обычно делают под VisualDSP....

 

....вот здесь есть некоторая инфа

http://docs.blackfin.uclinux.org/doku.php?...ort_igloo_board

jtag> endian little

jtag> flashmem 0x20000000 /your/path/u-boot.bin

 

я так понимаю что свой бинарик нужно грузить через JTAG по

адрессу 0x20000000, я все верно понял? думаю да...

а сам бинарик должен быть какой?

ELF?

...более того... и собран же наверно как standalone?

 

и еще более того... есть вопросик еще один...

компилятор у нас gcc linux-овый...

 

а вот здесь есть некоторая информация интересная - http://docs.blackfin.uclinux.org/doku.php?id=gcc_and_gas

и сказано :

 

...

bfin-elf-gcc linked against gcc's own newlib library. The bfin-elf-* toolchain should be used to build non-kernel and non-uClibc applications. bfin-uclinux-gcc linked against uClibc, which was built by the bfin-elf-* toolchain. Use this to build the kernel and kernel modules. Use this to build all userspace applications in the FLAT format. bfin-linux-uclibc-gcc linked against uClibc, which was built by the bfin-elf-* toolchain. Use this to build all userspace applications in the FDPIC ELF format.

The first bfin-elf-gcc is optimized to produce stand alone (non-Linux) applications, like Das U-Boot. Although it boots the kernel it does not need to be relocated and does not need to use elf2flt to produce a Flat file for loading by the kernel. This version of the compiler is designed to be Operating System independent.

 

The second bfin-uclinux-gcc has some features added to generate PIC (Program Independent Code) code without a GOT (Global Offset Table). This works better when working with elf2flt to produce user code executables. Only the bfin-uclinux-gcc can generate a Linux kernel or user land applications that run under Linux. When you build bfin-uclinux-gcc, it builds 2 copies of uClibc, one for flat executables, and one for ELF executables. The compiler is smart enough to know which one to include, depending on the output type, specified on the command line.

 

The third bfin-linux-uclibc-gcc is designed purely for compiling userspace applications in the FDPIC ELF format. This format is useful for sharing the same executable code among applications at the price of slightly higher overhead at runtime. A must for people using many shared libraries and applications and wish to share resources.

 

...

 

тоесть я верно понял - если собирать через bfin-elf-gcc то можно собрать все монолитно и без использования OS Linux ???

тоесть и получить - stand alone (non-Linux) applications .

Я верно понял?

 

.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я на BF531 поставил AT45DB081B + AVR. С помощью AVR можно будет и просто загружать Blackfin с компа, так и прошивать память. Плюс ко всему можно будет организовать мало-мальскую защиту от копирования, часть алгоритма переместив в AVR. В вашем случае, если хотите ставить большую флешку, то прийдется либо написать загрузчик под Blackfin и грузить его с мелкой AT25, а потом он уже по SPORT'у будет тянуть тяжелый линух, либо ставить мелкий контроллер, который будет читать из AT45DB642D и грузить проц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

скачайте новый даташит.

00 Execute from 16-bit external memory (bypass boot ROM)

01 Boot from 8-bit or 16-bit FLASH

10 Boot from SPI host slave mode

11 Boot from SPI serial EEPROM (8-, 16-, or 24-bit address range)

да, действительно у меня был чуть устаревший даташит, в новом даташите есть отличет

http://www.analog.com/en/epProd/0,,ADSP-BF532,00.html

кстати и errata тут же...

...

BOOTING MODES

The ADSP-BF531/ADSP-BF532 processor has two mechanisms

(listed in Table 8) for automatically loading internal L1 instruction

memory after a reset. A third mode is provided to execute

from external memory, bypassing the boot sequence.

 

Table 8. Booting Modes

BMODE1–0 Description

00 Execute from 16-bit external memory (bypass

boot ROM)

01 Boot from 8-bit or 16-bit FLASH

10 Boot from SPI host slave mode

11 Boot from SPI serial EEPROM (8-, 16-, or 24-bit

address range)

 

The BMODE pins of the reset configuration register, sampled

during power-on resets and software-initiated resets, implement

the following modes:

• Execute from 16-bit external memory – Execution starts

from address 0x2000 0000 with 16-bit packing. The boot

ROM is bypassed in this mode. All configuration settings

are set for the slowest device possible (3-cycle hold time;

15-cycle R/W access times; 4-cycle setup).

• Boot from 8-bit or 16-bit external flash memory – The flash

boot routine located in boot ROM memory space is set up

using asynchronous memory bank 0. All configuration settings

are set for the slowest device possible (3-cycle hold

time; 15-cycle R/W access times; 4-cycle setup).

• Boot from SPI serial EEPROM (8-, 16-, or 24-bit

addressable) – The SPI uses the PF2 output pin to select a

single SPI EEPROM device, submits successive read commands

at addresses 0x00, 0x0000, and 0x000000 until a

valid 8-, 16-, or 24-bit addressable EEPROM is detected,

and begins clocking data into the beginning of L1 instruction

memory.

For each of the boot modes, a 10-byte header is first read from

an external memory device. The header specifies the number of

bytes to be transferred and the memory destination address.

Multiple memory blocks may be loaded by any boot sequence.

Once all blocks are loaded, program execution commences from

the start of L1 instruction SRAM.

In addition, Bit 4 of the reset configuration register can be set by

application code to bypass the normal boot sequence during a

software reset. For this case, the processor jumps directly to the

beginning of L1 instruction memory.

...

 

 

а вот здесь вообще подробно расписанно про неприятность с AT45DB642D

http://www.analog.com/UploadedFiles/Applic...268EE240v03.pdf

 

.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а попобробнее пожалуйста?

U-boot то же наверно должен стартовать с какого конкретного адресса ?

Детальнее можете разъяснить?

 

На самом деле мы рассматриваем такой вариан что бы использовать монолитную структуру программы...

stand alone (non-Linux) applications - тоесть то что обычно делают под VisualDSP....

 

....вот здесь есть некоторая инфа

http://docs.blackfin.uclinux.org/doku.php?...ort_igloo_board

jtag> endian little

jtag> flashmem 0x20000000 /your/path/u-boot.bin

 

я так понимаю что свой бинарик нужно грузить через JTAG по

адрессу 0x20000000, я

все верно понял? думаю да...

а сам бинарик должен быть какой?

ELF?

...более того... и собран же наверно как standalone?

 

и еще более того... есть вопросик еще один...

компилятор у нас gcc linux-овый...

 

а вот здесь есть некоторая информация интересная - http://docs.blackfin.uclinux.org/doku.php?id=gcc_and_gas

и сказано :

 

0x2000 0000 - Это AMS0 на который вешаеться флешка, соответственно таким образом осуществляеться доступ до неё.

Для апликации отдельной как раз можно переделать U-boot добавив прерывания и так далее.

Чтобы компилять нужен bfin-elf-gcc

Также рекомендую почитать о структуре линковочных файлов. .lds

Примеры можно найти в томже U-boot там можно видеть как из флешки вытаскиваются нужные секции, и организована адресация. Ну и почитать как грузиться 532 -й, по блокам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...