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

Он в себе будет включать XML скрипт с прописанными задачами и firmware.

Изначально утилита забрасывает firmware в память процессора

 

Само собой, конечно поправил скрипт, сейчас проблема в создании правильного имиджа, там не все так просто, нужно смотреть, откуда берутся данные для первоначальной инициализации проца, чтоб потом закинуть их в контейнер с расширением imx пока так и не понял, как расчитываются адреса имиджа и его полей, чувствую накурюсь даташитов дохрена, но видимо другого пути нет - потихоньку начинаю ненавидеть линуксоидов :(

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


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

Само собой, конечно поправил скрипт, сейчас проблема в создании правильного имиджа, там не все так просто, нужно смотреть, откуда берутся данные для первоначальной инициализации проца, чтоб потом закинуть их в контейнер с расширением imx пока так и не понял, как расчитываются адреса имиджа и его полей, чувствую накурюсь даташитов дохрена, но видимо другого пути нет - потихоньку начинаю ненавидеть линуксоидов :(

 

Не совсем понимаю о каких данных для инициализации проца идет речь

Процессор инициализирует сама firmware сразу после загрузки

А выбор носителя выполняется с помощью командного процессора, который отрабатывает та же firmware

Курить придется много, но информации в целом достаточно

 

и еще....

 

если отладка лишена jtag, отлаживать "безосевой" софт будет мягко говоря затруднительно

для отладки под линукс есть GDB

под WinCE есть KITL

ни один ни второй не требует JTAG

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


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

Не совсем понимаю о каких данных для инициализации проца идет речь

Процессор инициализирует сама firmware сразу после загрузки

 

Да я уже нашел их, в этом проце есть такая фишка, что ДДР и клоки можно настроить до загрузки основного бинаря, это просто куча команд типа - адрес регистра-его данные и т.п. Вобщем сначала идет загрузка регистров контроллера ДДР, затем параметров ДДР памяти, которая уст. на плате, и напоследок контроллера клоков. После этого встроенный загрузчик уже копирует бинарь по заранее указанному адресу и после копирования стартует с него и все...

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


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

Да я уже нашел их, в этом проце есть такая фишка, что ДДР и клоки можно настроить до загрузки основного бинаря, это просто куча команд типа - адрес регистра-его данные и т.п. Вобщем сначала идет загрузка регистров контроллера ДДР, затем параметров ДДР памяти, которая уст. на плате, и напоследок контроллера клоков. После этого встроенный загрузчик уже копирует бинарь по заранее указанному адресу и после копирования стартует с него и все...

 

DCD что ли?

Так это тоже часть firmware...

Дело в том что эти данные грузятся из бутового флеша

А это не Ваш случай

 

DCD что ли?

Так это тоже часть firmware...

Дело в том что эти данные грузятся из бутового флеша

А это не Ваш случай

 

а если быть точнее, то даже не часть firmware, а образа (firmware + DCD + всякие ключи HAB), который ложится на бутовый флеш

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


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

DCD что ли?

а если быть точнее, то даже не часть firmware, а образа (firmware + DCD + всякие ключи HAB), который ложится на бутовый флеш

 

Именно это и есть. Как мне его не надо??? А куда я бинарь класть буду, в выключенныую ДДР??? :biggrin:

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


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

Именно это и есть. Как мне его не надо??? А куда я бинарь класть буду, в выключенныую ДДР??? :biggrin:

 

Если речь идет о буте с флешки, тогда конечно надо

 

Просто в MfgTools firmware заливается сразу в оперативку и выполняется

А DCD отрабатывается только при буте с флеша встроенным загрузчиком

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


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

Если речь идет о буте с флешки, тогда конечно надо

 

Просто в MfgTools firmware заливается сразу в оперативку и выполняется

А DCD отрабатывается только при буте с флеша встроенным загрузчиком

 

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

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

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


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

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

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

 

Тут я не подскажу

Прежде всего надо выяснить как работает MfgTools

 

Будут результаты - дайте знать

Реально интересно

Ну и чем смогу, тем помогу

517_MFGTOOLCustomizationGuide.rar

516_Sourcecode.zip

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


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

Тут я не подскажу

Прежде всего надо выяснить как работает MfgTools

 

Будут результаты - дайте знать

Реально интересно

Ну и чем смогу, тем помогу

 

тут для 25й имх у них похоже бутлоадер 1й версии, в 6й уже 2я версия с изменениями в полях данных

Хотя могу в чем-то ошибаться - а камнем еще 3 дня только занимаюсь :laughing:

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


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

тут для 25й имх у них похоже бутлоадер 1й версии, в 6й уже 2я версия с изменениями в полях данных

Хотя могу в чем-то ошибаться - а камнем еще 3 дня только занимаюсь :laughing:

 

короче...

 

imx6x определяется в USB как HID устройство

IMX6SDLRM.pdf -> 8.8 Serial Downloader

 

если есть практика программирования USB HID устройств, программатор пишется за один день

 

freescale.com -> search -> IMX_MFG_TOOL_V2_SOURCE

 

уверен что там все есть (например MxHidDevice.cpp)

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


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

Возможно вы действительно приобрели не совсем подходящий для вас DevKit. Я являюсь обладателем MarS Board от Embest. На ней выведена площадка под разъём JTAG (PLLD1.27-10). Мне его любезно припаяли, а я интереса ради попробовал загрузить и исполнить файл из ОЗУ простенькую тестовую программу через SEGGER J-Link v8.0 и IAR7.10. На этом DevKit'е установлен Dual вариант SoC i.MX6 , но IAR (там есть конфигурация конкретно под этот вариант чипа) в отладчике выводит информацию о регистрах только одного из них. Как переключиться на второе и возможно ли это в принципе в этой версии IDE я пока не знаю. Ничего интересного больше не скажу, т.к. брал плату для экспериментов с Linux и Android.

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


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

Я являюсь обладателем MarS Board от Embest.

 

Вопрос - во сколько обошлась эта плата? Эту я купил за 1400рубликов, причем планирую ее ставить в серийное изделие, по цене она меня полностью устраивает, так что придется уж долбить ее до победы...

 

короче...

 

iесли есть практика программирования USB HID устройств, программатор пишется за один день

 

А зачем это мне?? Вы видать не поняли мой вопрос.

 

Написал на форуме стартеркита, но видать там поставил всех в ступор :wacko:

 

Итак, на чем мы остановились...

 

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

 

До чего я дошел, этот файл представляет собой контейнер, в котором есть основной заголовок, затем 3 адреса, и далее идет список DCD. С ним все ясно, это инициализация ДДР контроллера и системных клоков, ее можно оставить такую-же как было в убуте, т.к. это определяет характеристики целевой платы и памяти, а она не изменилась.

 

Главный вопрос по системе адресации, на который мне пока никто не ответил, а именно:

 

я вот про что - в заголовке имх-файла есть такие поля:

абсолютный адрес первой инструкции - 0x00008017

абсолютный адрес DCD - 0x2CF47F17

абсолютный адрес Boot Data - 0x20F47F17

абсолютный адрес IVT - 0x00400400 (так понял, что его менять не надо)

 

Можете объяснить, почему адрес первой инструкции 32791, хотя заголовок всего килобайт?

 

И остальные адреса, особенно про DCD?

 

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


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

Главный вопрос по системе адресации, на который мне пока никто не ответил

 

почитайте 2 и 8 раздел RM , кто вам тут на пальцах это объяснять будет..

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


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

почитайте 2 и 8 раздел RM , кто вам тут на пальцах это объяснять будет..

 

Да я уж понял- вопрос был в порядке байт.

 

Как же хорошо в свое время было с аврками :biggrin:

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


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

Кто поможет в портировании на иар функции:

 

get_arm_private_peripheral_base ?

 

Без нее не хочет компилиться проект

 

И вообще, как портировать gccшные ассемблерные макросы на иар?

 

 

.global get_arm_private_peripheral_base

@ uint32_t get_arm_private_peripheral_base(void)@

.func get_arm_private_peripheral_base

get_arm_private_peripheral_base:

@ Get base address of private perpherial space

mrc p15, 4, r0, c15, c0, 0 @ Read periph base address

bx lr

.endfunc @get_arm_private_peripheral_base()@

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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