Jump to content
    

Imx6 без линухи

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

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

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

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

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

 

и еще....

 

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

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

под WinCE есть KITL

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

Share this post


Link to post
Share on other sites

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

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

 

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

Share this post


Link to post
Share on other sites

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

 

DCD что ли?

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

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

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

 

DCD что ли?

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

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

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

 

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

Share this post


Link to post
Share on other sites

DCD что ли?

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

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

Share this post


Link to post
Share on other sites

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

 

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

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

 

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

 

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

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

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

517_MFGTOOLCustomizationGuide.rar

516_Sourcecode.zip

Share this post


Link to post
Share on other sites

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

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

 

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

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

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

 

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

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

Share this post


Link to post
Share on other sites

тут для 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)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

 

короче...

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

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

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

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

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

 

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

 

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

 

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

 

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()@

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...