реклама на сайте
подробности

 
 
5 страниц V  < 1 2 3 4 5 >  
Reply to this topicStart new topic
> ARM, забегая вперёд...
sergeeff
сообщение Nov 17 2010, 14:08
Сообщение #31


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Ну взяла бы уважаемая радистка и сделала в своей программе dump первых 64 байт sram с 0-го адреса. По крайней мере многое прояснится.
Go to the top of the page
 
+Quote Post
SII
сообщение Nov 17 2010, 18:18
Сообщение #32


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 13-07-10
Из: Солнечногорск-7
Пользователь №: 58 414



Цитата(Zelepuk @ Nov 15 2010, 20:33) *
Сложновато-сложновато, всё равно((

Например подёргать ногами на 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, то соответствующие ноги просто не меняются, поэтому установить или сбросить конкретные ноги проще (не надо предварительно считывать состояние порта и проводить логические операции, чтобы установить-сбросить определённые биты).

Сообщение отредактировал SII - Nov 17 2010, 18:25
Go to the top of the page
 
+Quote Post
Zelepuk
сообщение Nov 18 2010, 10:12
Сообщение #33


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Цитата(SII @ Nov 17 2010, 21:18) *
В общем-то, там ничего сложного нет, просто в АРМе сложней первоначальная настройка, и в неё лучше вникнуть, а не копипастить откуда-то, не очень понимая точный смысл. Я использую AT91SAM9261, никаких трудностей не возникало, за исключением того, что первый раз, инициализируя DBGU, забыл отдать ему соответствующие ноги портов -- естественно, передача данных при этом не работала.

ADD. Ну а если конкретно про дрыганье ногами, то имеется два варианта.

1. Для установки неких разрядов какого-либо порта записываются 1 в соответствующие разряды регистра PIO_SODR этого порта (те разряды, в которые записывается 0, не будут менять своё состояние). Для сброса разрядов производится запись единиц в соответствующие позиции регистра PIO_CODR.

2. Сброс-установка разрядов путём записи необходимых значений в порт PIO_ODSR. Именно этот режим эквивалентен изменению ног в AVRках, но нередко удобнее бывает способ 1: если в какие-то биты порта записывается 0, то соответствующие ноги просто не меняются, поэтому установить или сбросить конкретные ноги проще (не надо предварительно считывать состояние порта и проводить логические операции, чтобы установить-сбросить определённые биты).


спасибо!
Go to the top of the page
 
+Quote Post
tturist
сообщение Nov 19 2010, 14:45
Сообщение #34


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 2-04-07
Пользователь №: 26 703



Я тут сильно извиняюсь...
По моему скромному мнению изучение АРМ9 нужно начинать не с вопроса "как ножками потрыгать" а с вопроса "какую операционную систему на этот чип поставить". Тогда не будет лишних вопросов как что грузить и как память инициализировать. Нужно придумать очень экзотическую задачу чтобы имело смысл лудить такую железку без ОС. У меня вот фантазии не хватает. Не надо ничего изобретать и приделывать к велосипеду квадратные колеса.
У вас простая задача - берите 8-ми битную архитектуру.
Что-то посложнее - АРМ7 и можно подумать о какой-нибудь риал-тайм ОС.
А если вам захотелось АРМ9 с ММУ залудить - без операционной системы не обойтись. Он для этого и придуман. Идете на сайт производителя с вопросом "какую ОС вы мне можете предложить для этого железа".
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Nov 19 2010, 17:03
Сообщение #35


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



tturist, тренируйте фантазию smile.gif

У нас есть железка с WinCE на ARM9, там загрузчик полностью переписан и обвешан блекджеками и шл... излишествами.
Цель - на производстве (да и у пользователя тоже) убедиться, что всё железо работает нормально.

Ногодрыг там используется вовсю.
Хотя основное применение железки, конечно, другое - крутить задачку под WinCE.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Nov 19 2010, 17:48
Сообщение #36


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(tturist @ Nov 19 2010, 17:45) *
Я тут сильно извиняюсь...
По моему скромному мнению изучение АРМ9 нужно начинать не с вопроса "как ножками потрыгать" а с вопроса "какую операционную систему на этот чип поставить".


Вы в этом вопросе идете на поводу у сторонников теории "главное побыстрее чего-нибудь сляпать, а потом...". Вы, к примеру, не смотрели как в Linux'e через стандартную драйверную обвязку сделано "ногодрыгание"? Вы посмотрите, может свое мнение и несколько поменяете.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Nov 19 2010, 19:35
Сообщение #37


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Цитата
а с вопроса "какую операционную систему на этот чип поставить"

Когда хоть одну железку своими руками (а не руками производителей китов) сделаете, ваше мнение изменится.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Nov 20 2010, 11:55
Сообщение #38


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Цитата(tturist @ Nov 19 2010, 17:45) *
Я тут сильно извиняюсь...
По моему скромному мнению изучение АРМ9 нужно начинать не с вопроса "как ножками потрыгать" а с вопроса "какую операционную систему на этот чип поставить". Тогда не будет лишних вопросов как что грузить и как память инициализировать. Нужно придумать очень экзотическую задачу чтобы имело смысл лудить такую железку без ОС. У меня вот фантазии не хватает. Не надо ничего изобретать и приделывать к велосипеду квадратные колеса.
У вас простая задача - берите 8-ми битную архитектуру.
Что-то посложнее - АРМ7 и можно подумать о какой-нибудь риал-тайм ОС.
А если вам захотелось АРМ9 с ММУ залудить - без операционной системы не обойтись. Он для этого и придуман. Идете на сайт производителя с вопросом "какую ОС вы мне можете предложить для этого железа".


Линукс реалтаймовский - не проблема?
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Nov 20 2010, 13:52
Сообщение #39


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата
А если вам захотелось АРМ9 с ММУ залудить - без операционной системы не обойтись.


Совсем уж неясное утверждение. Что-то такого фантастического нужно для инициализации D- и I- кешей, к примеру, что не катит без ОС?
Go to the top of the page
 
+Quote Post
NIKOLASIUS
сообщение Nov 22 2010, 09:07
Сообщение #40


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 17-06-10
Из: МИНСК
Пользователь №: 57 975



Доброго времени суток!
Может быть кто-нибудь сталкивался с ECC (Error Corrected Code Controller) в MCU AT91SAM9G45.
Суть проблемы токова: в очищенный блок NAND FLASH пишу одну страницу и содержимое регистров ECC, а вот при чтении получаю мультибитовую ошибку.

Сообщение отредактировал NIKOLASIUS - Nov 22 2010, 09:08


--------------------
Никогда не бойся делать то, что ты не умеешь.
Помни, ковчег был построен любителем.
Профессионалы построили "Титаник".
Go to the top of the page
 
+Quote Post
radistka
сообщение Nov 24 2010, 06:54
Сообщение #41


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 4-03-09
Из: Санкт-Петербург
Пользователь №: 45 656



Значит так, стала запускаться моя программа с помощью написанного загрузчика.
Беда была вот какая - основная программа была скомпилирована для SDRAM, но чатсь функций была помещена в SRAM, сделано это было помещением конкретной функции в секцию, расположенную в ОЗУ. При прошивке программы непосредственно в SDRAM под IARом все работало корректно, однако при загрузке программы из флэш в SDRAM (с помощью написанного загрузчика) ОЗУшные функции, судя по всему, не помещались в нужные секции. Подскажите, может в IARе где-то чего-то указать дополнительно нужно или еще чего...Или функции в ОЗУ можно поместить только ручками, прописав их в стартапе?
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Nov 24 2010, 07:33
Сообщение #42


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(radistka @ Nov 24 2010, 09:54) *
Значит так, стала запускаться моя программа с помощью написанного загрузчика.


Странное дело. Вы ведь сами написали загрузчик из flash в sdram? Что же вы тогда спрашиваете?
Go to the top of the page
 
+Quote Post
radistka
сообщение Nov 24 2010, 09:02
Сообщение #43


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 4-03-09
Из: Санкт-Петербург
Пользователь №: 45 656



спрашиваю, потому что не понимаю, что в него еще нужно приписать. На сегодняшний день загрузчик инициализирует SDRAM, копирует код программы из флеш в SDRAM и переходит на адрес этой программы в SDRAM, но как дело обстоит с функциями основной программы, помещенными в SRAM, не понятно.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Nov 24 2010, 16:47
Сообщение #44


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(radistka @ Nov 24 2010, 12:02) *
спрашиваю, потому что не понимаю, что в него еще нужно приписать. На сегодняшний день загрузчик инициализирует SDRAM, копирует код программы из флеш в SDRAM и переходит на адрес этой программы в SDRAM, но как дело обстоит с функциями основной программы, помещенными в SRAM, не понятно.


Во flash у вас лежит, скорее всего, линейный bin-файл. Вы же должны знать, хотя бы, границы bss сегмента (чтобы его обнулить). Таким же образом, вы, по идее, должны знать границы вашего нестандартного (sram) сегмента, и, соответсвенно ручками скопировать этот сегмент по нужным адресам. Детали всего этого сильно зависят от вашего компилятора/линкера.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Nov 24 2010, 18:27
Сообщение #45


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Все функции __ramfunc перекачиваются в SRAM в процессе инициализации main (это делает за вас компилятор).
Но для этого у вас должно быть верное определение SRAM в линкерном файле.
Если там все нормально, то проверьте, на месте ли находится SRAM.
Т.е. хто делает ремап и делает ли вообще. Сам компилятор этого делать не станет.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post

5 страниц V  < 1 2 3 4 5 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 14:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.01492 секунд с 7
ELECTRONIX ©2004-2016