sergeeff 1 17 ноября, 2010 Опубликовано 17 ноября, 2010 · Жалоба Ну взяла бы уважаемая радистка и сделала в своей программе dump первых 64 байт sram с 0-го адреса. По крайней мере многое прояснится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SII 0 17 ноября, 2010 Опубликовано 17 ноября, 2010 (изменено) · Жалоба Сложновато-сложновато, всё равно(( Например подёргать ногами на AVR можно просто (напримере IAR) DDRC = 255; PORTC = 255; сколько не искал подобные констркукции для ARM... не нашёл(( Как осуществляется доступ к PA0... PA31, PB0... PB31 и т.д. (здаётся мне их настроить их на вывод тоже непрсото - одной строчкой необойтись) P.S. Наверное нужно и впрям запастись мешком семечек и курить даташит.... В общем-то, там ничего сложного нет, просто в АРМе сложней первоначальная настройка, и в неё лучше вникнуть, а не копипастить откуда-то, не очень понимая точный смысл. Я использую AT91SAM9261, никаких трудностей не возникало, за исключением того, что первый раз, инициализируя DBGU, забыл отдать ему соответствующие ноги портов -- естественно, передача данных при этом не работала. ADD. Ну а если конкретно про дрыганье ногами, то имеется два варианта. 1. Для установки неких разрядов какого-либо порта записываются 1 в соответствующие разряды регистра PIO_SODR этого порта (те разряды, в которые записывается 0, не будут менять своё состояние). Для сброса разрядов производится запись единиц в соответствующие позиции регистра PIO_CODR. 2. Сброс-установка разрядов путём записи необходимых значений в порт PIO_ODSR. Именно этот режим эквивалентен изменению ног в AVRках, но нередко удобнее бывает способ 1: если в какие-то биты порта записывается 0, то соответствующие ноги просто не меняются, поэтому установить или сбросить конкретные ноги проще (не надо предварительно считывать состояние порта и проводить логические операции, чтобы установить-сбросить определённые биты). Изменено 17 ноября, 2010 пользователем SII Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zelepuk 0 18 ноября, 2010 Опубликовано 18 ноября, 2010 · Жалоба В общем-то, там ничего сложного нет, просто в АРМе сложней первоначальная настройка, и в неё лучше вникнуть, а не копипастить откуда-то, не очень понимая точный смысл. Я использую AT91SAM9261, никаких трудностей не возникало, за исключением того, что первый раз, инициализируя DBGU, забыл отдать ему соответствующие ноги портов -- естественно, передача данных при этом не работала. ADD. Ну а если конкретно про дрыганье ногами, то имеется два варианта. 1. Для установки неких разрядов какого-либо порта записываются 1 в соответствующие разряды регистра PIO_SODR этого порта (те разряды, в которые записывается 0, не будут менять своё состояние). Для сброса разрядов производится запись единиц в соответствующие позиции регистра PIO_CODR. 2. Сброс-установка разрядов путём записи необходимых значений в порт PIO_ODSR. Именно этот режим эквивалентен изменению ног в AVRках, но нередко удобнее бывает способ 1: если в какие-то биты порта записывается 0, то соответствующие ноги просто не меняются, поэтому установить или сбросить конкретные ноги проще (не надо предварительно считывать состояние порта и проводить логические операции, чтобы установить-сбросить определённые биты). спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tturist 0 19 ноября, 2010 Опубликовано 19 ноября, 2010 · Жалоба Я тут сильно извиняюсь... По моему скромному мнению изучение АРМ9 нужно начинать не с вопроса "как ножками потрыгать" а с вопроса "какую операционную систему на этот чип поставить". Тогда не будет лишних вопросов как что грузить и как память инициализировать. Нужно придумать очень экзотическую задачу чтобы имело смысл лудить такую железку без ОС. У меня вот фантазии не хватает. Не надо ничего изобретать и приделывать к велосипеду квадратные колеса. У вас простая задача - берите 8-ми битную архитектуру. Что-то посложнее - АРМ7 и можно подумать о какой-нибудь риал-тайм ОС. А если вам захотелось АРМ9 с ММУ залудить - без операционной системы не обойтись. Он для этого и придуман. Идете на сайт производителя с вопросом "какую ОС вы мне можете предложить для этого железа". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 19 ноября, 2010 Опубликовано 19 ноября, 2010 · Жалоба tturist, тренируйте фантазию :) У нас есть железка с WinCE на ARM9, там загрузчик полностью переписан и обвешан блекджеками и шл... излишествами. Цель - на производстве (да и у пользователя тоже) убедиться, что всё железо работает нормально. Ногодрыг там используется вовсю. Хотя основное применение железки, конечно, другое - крутить задачку под WinCE. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 19 ноября, 2010 Опубликовано 19 ноября, 2010 · Жалоба Я тут сильно извиняюсь... По моему скромному мнению изучение АРМ9 нужно начинать не с вопроса "как ножками потрыгать" а с вопроса "какую операционную систему на этот чип поставить". Вы в этом вопросе идете на поводу у сторонников теории "главное побыстрее чего-нибудь сляпать, а потом...". Вы, к примеру, не смотрели как в Linux'e через стандартную драйверную обвязку сделано "ногодрыгание"? Вы посмотрите, может свое мнение и несколько поменяете. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DpInRock 0 19 ноября, 2010 Опубликовано 19 ноября, 2010 · Жалоба а с вопроса "какую операционную систему на этот чип поставить" Когда хоть одну железку своими руками (а не руками производителей китов) сделаете, ваше мнение изменится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TigerSHARC 0 20 ноября, 2010 Опубликовано 20 ноября, 2010 · Жалоба Я тут сильно извиняюсь... По моему скромному мнению изучение АРМ9 нужно начинать не с вопроса "как ножками потрыгать" а с вопроса "какую операционную систему на этот чип поставить". Тогда не будет лишних вопросов как что грузить и как память инициализировать. Нужно придумать очень экзотическую задачу чтобы имело смысл лудить такую железку без ОС. У меня вот фантазии не хватает. Не надо ничего изобретать и приделывать к велосипеду квадратные колеса. У вас простая задача - берите 8-ми битную архитектуру. Что-то посложнее - АРМ7 и можно подумать о какой-нибудь риал-тайм ОС. А если вам захотелось АРМ9 с ММУ залудить - без операционной системы не обойтись. Он для этого и придуман. Идете на сайт производителя с вопросом "какую ОС вы мне можете предложить для этого железа". Линукс реалтаймовский - не проблема? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 20 ноября, 2010 Опубликовано 20 ноября, 2010 · Жалоба А если вам захотелось АРМ9 с ММУ залудить - без операционной системы не обойтись. Совсем уж неясное утверждение. Что-то такого фантастического нужно для инициализации D- и I- кешей, к примеру, что не катит без ОС? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NIKOLASIUS 0 22 ноября, 2010 Опубликовано 22 ноября, 2010 (изменено) · Жалоба Доброго времени суток! Может быть кто-нибудь сталкивался с ECC (Error Corrected Code Controller) в MCU AT91SAM9G45. Суть проблемы токова: в очищенный блок NAND FLASH пишу одну страницу и содержимое регистров ECC, а вот при чтении получаю мультибитовую ошибку. Изменено 22 ноября, 2010 пользователем NIKOLASIUS Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
radistka 0 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба Значит так, стала запускаться моя программа с помощью написанного загрузчика. Беда была вот какая - основная программа была скомпилирована для SDRAM, но чатсь функций была помещена в SRAM, сделано это было помещением конкретной функции в секцию, расположенную в ОЗУ. При прошивке программы непосредственно в SDRAM под IARом все работало корректно, однако при загрузке программы из флэш в SDRAM (с помощью написанного загрузчика) ОЗУшные функции, судя по всему, не помещались в нужные секции. Подскажите, может в IARе где-то чего-то указать дополнительно нужно или еще чего...Или функции в ОЗУ можно поместить только ручками, прописав их в стартапе? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба Значит так, стала запускаться моя программа с помощью написанного загрузчика. Странное дело. Вы ведь сами написали загрузчик из flash в sdram? Что же вы тогда спрашиваете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
radistka 0 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба спрашиваю, потому что не понимаю, что в него еще нужно приписать. На сегодняшний день загрузчик инициализирует SDRAM, копирует код программы из флеш в SDRAM и переходит на адрес этой программы в SDRAM, но как дело обстоит с функциями основной программы, помещенными в SRAM, не понятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба спрашиваю, потому что не понимаю, что в него еще нужно приписать. На сегодняшний день загрузчик инициализирует SDRAM, копирует код программы из флеш в SDRAM и переходит на адрес этой программы в SDRAM, но как дело обстоит с функциями основной программы, помещенными в SRAM, не понятно. Во flash у вас лежит, скорее всего, линейный bin-файл. Вы же должны знать, хотя бы, границы bss сегмента (чтобы его обнулить). Таким же образом, вы, по идее, должны знать границы вашего нестандартного (sram) сегмента, и, соответсвенно ручками скопировать этот сегмент по нужным адресам. Детали всего этого сильно зависят от вашего компилятора/линкера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DpInRock 0 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба Все функции __ramfunc перекачиваются в SRAM в процессе инициализации main (это делает за вас компилятор). Но для этого у вас должно быть верное определение SRAM в линкерном файле. Если там все нормально, то проверьте, на месте ли находится SRAM. Т.е. хто делает ремап и делает ли вообще. Сам компилятор этого делать не станет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться