17.07.2011, 13:03
|
|
Гражданин KAZUS.RU
Регистрация: 13.06.2005
Адрес: РК г.Павлодар
Сообщений: 866
Сказал спасибо: 99
Сказали Спасибо 216 раз(а) в 140 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Подскажите ST Link который на дискавери STM32, может работать с STM8, или заказывать дискавери STM8?
__________________
Не ошибается лишь тот, кто ни чего не делает!
|
|
|
|
17.07.2011, 13:39
|
|
Гражданин KAZUS.RU
Регистрация: 17.08.2008
Сообщений: 770
Сказал спасибо: 52
Сказали Спасибо 450 раз(а) в 202 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от woroba
|
заказывать дискавери STM8
|
заказывать дискавери STM8
|
|
|
|
19.07.2011, 12:26
|
|
Временная регистрация
Регистрация: 14.11.2008
Сообщений: 68
Сказал спасибо: 3
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от andries5
|
Вложение 23244
Обещал, выполняю.
Только надо будет в проекте поменять пути к файлам, в соответсвии с расположением Keil-а.
У меня путь: "c:\Progr\Keil\ARM\Work\Temp\"
|
Столкнулся с такой проблемой:
хочу сменить ориентацию экрана с 240*320 на 320*240
в подпрограмме инициализации по адресу 03h задаётся entry mode
меняю (руководствуясь даташитом) бит регистра AM с 0 на 1, но после инициализации ничего не меняется. что я еще мог не учесть?
|
|
|
|
20.07.2011, 02:50
|
|
Частый гость
Регистрация: 23.05.2009
Сообщений: 46
Сказал спасибо: 1
Сказали Спасибо 4 раз(а) в 2 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
кто-нибудь писал обработчик прерывания на ассемблере для STM32 ?
есть пара вопросов
1 Вектор прерывания это просто адрес или команда В адрес?
2 Существует ли различие в завершении обычной процедуры и процедуры обработки прерывания (т.е. возврат из процедуры это BX LR, а как выходим из прерывания )?
|
|
|
|
20.07.2011, 08:24
|
|
Вид на жительство
Регистрация: 05.07.2006
Адрес: Tashkent
Сообщений: 454
Сказал спасибо: 24
Сказали Спасибо 67 раз(а) в 44 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от kazusdoc
|
1 Вектор прерывания это просто адрес или команда В адрес?
2 Существует ли различие в завершении обычной процедуры и процедуры обработки прерывания (т.е. возврат из процедуры это BX LR, а как выходим из прерывания )?
|
1. Простой адрес.
2. Насколько я помню по входу в прерывание в LR загружается особое значение. При выполнении перехода на это значение обрабортчик завершается аппаратно.
Upd:
Стр.151 книги The definitive guide to the ARM Cortex-M3, раздел Register updates и Exception Exits:
Цитата:
|
LR will be updated to a special value called EXC_RETURN. This special value drives the interrupt return operation...
EXC_RETURN has values with bit[31:4] and are all 1(i.e., 0xFFFFFFFX); the last 4 bits define the return information.
|
Последний раз редактировалось uk8amk; 20.07.2011 в 08:53.
|
|
|
|
20.07.2011, 11:02
|
|
Частый гость
Регистрация: 23.05.2009
Сообщений: 46
Сказал спасибо: 1
Сказали Спасибо 4 раз(а) в 2 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от uk8amk
|
1. Простой адрес.
|
с этим понятно - спасибо. А что касается второго вопроса...
Сообщение от uk8amk
|
....При выполнении перехода на это значение обрабортчик завершается аппаратно.
|
так о чем и вопрос - EXC_RETURN это BX LR? Ведь в любом случае выходом из обработчика скорее всего является инструкция типа Branch
|
|
|
|
21.07.2011, 00:58
|
|
Гражданин KAZUS.RU
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от kazusdoc
|
2 Существует ли различие в завершении обычной процедуры и процедуры обработки прерывания
|
Нет. Когда пишу на C то обработчик прерывания объявляется точно так же, как и любая другая функция. На асме то же самое будет. В таблице прерываний лежит адрес этой функции.
|
|
|
|
21.07.2011, 02:29
|
|
Временная регистрация
Регистрация: 25.11.2009
Сообщений: 61
Сказал спасибо: 1
Сказали Спасибо 17 раз(а) в 17 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
1. Адреса, но! Бит 0 должен быть установлен, т.к. процессор поддерживает только режим Thumb. Обычно ассемблер за этим следит, но могут быть разные ситуации.
2. EXC_RETURN это особое значение, которое записывается в регистр LR при входе в обработчик, и которое нужно сохранить до выполнения BX LR. При особой необходимости (если нужно вернуться в другой режим) можно записать своё значение в LR перед возвратом. Подробнее см. тут.
|
|
|
|
21.07.2011, 12:48
|
|
Частый гость
Регистрация: 23.05.2009
Сообщений: 46
Сказал спасибо: 1
Сказали Спасибо 4 раз(а) в 2 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
tanq, roxfan спасибо. Про бит 0 знаю. Заморочка в том, что я гуглил по старой привычке interrupt, а в доках это чаще обзывается exception. Ну и опять же у многих контроллеров существует различие в возврате из простой процедуры и прерывания (ret/reti соотвественно), поэтому немного затормозил на этом моменте. На днях попробую ....
|
|
|
|
23.07.2011, 11:51
|
|
Частый гость
Регистрация: 07.03.2011
Сообщений: 38
Сказал спасибо: 1
Сказали Спасибо 19 раз(а) в 16 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
http://www.micro4you.com/store/index...product_id=164
в семплах большое количество примеров на базе CMSIS очень подробно комментированые...
значительно лучше разделенные, чем предыдущие на базе FirmLib...
|
|
|
Сказали "Спасибо" Gaaaaaad
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:24.
|
|