|
|
  |
AT91SAM9260, Помогите с прерываниями |
|
|
|
Jul 3 2009, 10:05
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(crack_enigma @ Jul 2 2009, 08:27)  Как это можно cделать ? Почитайте хелп ИАР'а. Цитата(crack_enigma @ Jul 2 2009, 08:27)  Где его включить ? Открыть даташит, нажать Ctrl+F, ввести "Protect Mode" и читать. В общем, читать, читать и еще раз читать. Без этого никак, поверьте.
|
|
|
|
|
Jul 6 2009, 06:33
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 6-07-07
Пользователь №: 28 939

|
Благодарю DpInRock. Перенапраление прерывания с помощью AIC это действительно очень удобно. Что касается ответа aaarrr Цитата Почитайте хелп ИАР'а. и Открыть дата шит, нажать Ctrl+F, ввести "Protect Mode"... то можно сказать только следующие: Всё как в анекдоте про ремонтника где тот берёт 1 фунт за удар молотком а 99 за то что знал куда ударить. По моему профессионал отличается тем что может ткнуть конкретно человека носом "делай вот так" а уже сам человек разберётся спросит уточнит. Ведь не лень писать "Читай ХЕЛП по иару" всесто AAA->BBB->CCC ?
|
|
|
|
|
Jul 6 2009, 10:30
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 6-07-07
Пользователь №: 28 939

|
Во первых я ни кого не хочу обидеть, а просто пытаюсь разобраться. Цитата Видите ли, объяснять то, что человек не понял - нормально. А объяснять то, что человек НЕ ЗНАЕТ - бесполезно. Во вторых про защищёны режим вполне мог бы помочь примерчик: CODE void main() { //... *AT91C_AIC_DCR = bit0; //Установить защищёный режим //... } //обработчик прерывания при перенаправлении с AIC (ldr PC, [PC,# -0xF20]; в стартапе) __irq __arm void US0() { * AT91C_AIC_IVR = 0xFFFF; //!!! даём знать что это прерывание а не опрос отладчика //.... * AT91C_AIC_EOICR = 0xFFFF; //конец прерывания }
|
|
|
|
|
Jul 6 2009, 12:54
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(crack_enigma @ Jul 6 2009, 14:30)  Во первых я ни кого не хочу обидеть, а просто пытаюсь разобраться. Чтобы разобраться, достаточно даташита и словосочетания "Protect Mode", не находите? Цитата(crack_enigma @ Jul 6 2009, 14:30)  Во вторых про защищёны режим вполне мог бы помочь примерчик: Ну вот, осилили ведь. А при получении такого "примерчика" со стороны все равно пришлось бы читать даташит.
|
|
|
|
|
Jul 8 2009, 07:52
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 6-07-07
Пользователь №: 28 939

|
Не знаю конечно, правда у каждого своя. Цитата Ну вот, осилили ведь. А при получении такого "примерчика" со стороны все равно пришлось бы читать даташит. А что легче и быстрее идти от рабочего к пониманию или от понимания к реализации? Цитата убрать из окошка регистров AIC_IVR... Почитайте хелп ИАР'а. Чётка ссылка что и где искать. Он ну очень маленький. Походу дела возник ещё 1 вопрос: При использование простого деления в режиме Thumb например: int A = 123; A/=12;вываливатся в SWI_Handel() А в режиме ARM всё корректно работает В чем дело?
|
|
|
|
|
Jul 8 2009, 11:56
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(crack_enigma @ Jul 8 2009, 11:52)  А что легче и быстрее идти от рабочего к пониманию или от понимания к реализации? От понимания к реализации. И только так. Цитата(crack_enigma @ Jul 8 2009, 11:52)  Чётка ссылка что и где искать. Он ну очень маленький. "Четкие ссылки" спросите у "пацанов на раёне".
|
|
|
|
|
Jul 9 2009, 04:56
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 6-07-07
Пользователь №: 28 939

|
Цитата "Четкие ссылки" спросите у "пацанов на раёне". Неужели у вас был на столько горький опыт в жизни? И хорошо вам всё объяснили? Опять ведь лень было просто написать: В момент запущенной отладки в IAR : Tools>Options > Register Filter Там можно настроить отображаемые регистры. А теперь задайте себе вопрос что более информативно приведённый ранее мною примерчик и этот ответ или мысли высказанные вами? Мы всё таки технари по образованию. Если теперь знаю ответ то смог коротко его сформулировать. У меня есть вопрос, но догадываюсь что ответа на него не последует. Всё же задам: У AT91SAM9260 есть BootMemory и ROM (32 кб).Возможно ли программу разместить в ROM т.е. не используя внешнею flash, если да то как это реализовать. BMS =1 настройки *.icf что имеются у меня : define symbol __ICFEDIT_region_ROM_start__ = 0x80; (побывал 0x100000) define symbol __ICFEDIT_region_ROM_end__ = 0x107FFF; define symbol __ICFEDIT_region_RAM_start__ = 0x300000; define symbol __ICFEDIT_region_RAM_end__ = 0x300FFF; После сброса питания становится очевидно что программа была в энергозависимой памяти мк. PS: от туда и ошибка с делением (подрубался лишний код(доб библиотеки IAR), и вылезали за кеш кода в результате младшие адреса с векторами становились не верными.
|
|
|
|
|
Jul 9 2009, 12:16
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(crack_enigma @ Jul 9 2009, 08:56)  Опять ведь лень было просто написать Нет, это вам было просто лень разобраться. Когда в Ворде нужно панельки инструментов настроить - тоже задаете вопросы на форумах? Цитата(crack_enigma @ Jul 9 2009, 08:56)  У меня есть вопрос, но догадываюсь что ответа на него не последует. Всё же задам: У AT91SAM9260 есть BootMemory и ROM (32 кб).Возможно ли программу разместить в ROM т.е. не используя внешнею flash, если да то как это реализовать. Возможно. Другое дело, что для этого придется купить у Атмела кристаллов на много-много K$ и попросить их записать в ROM ваш код.
|
|
|
|
|
Jul 13 2009, 09:02
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 6-07-07
Пользователь №: 28 939

|
Цитата Возможно. Другое дело, что для этого придется купить у Атмела кристаллов на много-много K$ и попросить их записать в ROM ваш код. Логично. Благодарю.  Смотрел модели со встроенной флешкой в частности AT91SAM9XE512. Сразу возник вопрос: J-Link + IAR сумеет записать программу сразу в flash и запустить на отладку? Если да то следующий конфиг верен? REMAP = 0 GPNVMBit[3] = 1 define symbol __ICFEDIT_intvec_start__ = 0x20 0000; define symbol __ICFEDIT_region_ROM_start__ = 0x20 0080; define symbol __ICFEDIT_region_ROM_end__ = 0x20 7FFF; define symbol __ICFEDIT_region_RAM_start__ = 0x300000; define symbol __ICFEDIT_region_RAM_end__ = 0x307FFF;
|
|
|
|
|
Jul 17 2009, 10:27
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 6-07-07
Пользователь №: 28 939

|
АУУ!!! Люди!!! Уже 4 дня миновало. Может кто нибудь ответит?
|
|
|
|
|
Jul 17 2009, 22:12
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(crack_enigma @ Jul 13 2009, 12:02)  Смотрел модели со встроенной флешкой в частности AT91SAM9XE512. Сразу возник вопрос: J-Link + IAR сумеет записать программу сразу в flash и запустить на отладку? Думаю без проблем. Цитата Если да то следующий конфиг верен? Адреса выглядят верно, а больше по конфигу ничего сказать не могу.. с IAR'ом не работаю. В Keil'е загрузка и отладка из флеш на XE512 + J-Link работает прекрасно. Но, не советую так делать. Когда есть SDRAM лучше грузить и отлаживать в нем. Флеш жалко, уж больно скудный его ресурс, всего 10К перезаписей...
|
|
|
|
|
Jul 24 2009, 12:24
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 6-07-07
Пользователь №: 28 939

|
Благодарю за ответ. Цитата Когда есть SDRAM лучше грузить и отлаживать в нем. Идея очень хорошая. Сразу навела на мысль SDARAM + AT91SAM9260 тогда ведь можно и загрузить в неё? И отлаживать в ней? Относительно мк AT91SAM9260: И очень интересует вопрос принципа выполнения программы а именно: при использовании внешней плешки (по SPI) нужен REMAP. 1 раз он делается мк при старте. Далее код проецируется в память. Куда не совсем понял толь на область ROM толь в КЕШ кода. Ну а вот когда этот кусочек программы закончится следующий погрузится сам или это делать приходится программным путём?
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|