15.11.2012, 13:50
|
|
Прописка
Регистрация: 19.05.2012
Сообщений: 99
Сказал спасибо: 0
Сказали Спасибо 10 раз(а) в 8 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
в arm-gcc const ложится в flash, собсно как и требуется по стандарту
в avr-gcc изначально и этого не было, для flash были спец.функции PGM_
|
|
|
|
15.11.2012, 16:29
|
|
Временная регистрация
Регистрация: 21.02.2007
Адрес: Minsk
Сообщений: 71
Сказал спасибо: 26
Сказали Спасибо 16 раз(а) в 15 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Hives
|
объясните, какой смысл извращаться со всякими "__root" & "__flash", если данные описаные как const все равно лягут как RO DATA во флеш?
|
Действительно. Что есть "__root", что нету – без разницы.
|
|
|
|
15.11.2012, 18:08
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от wss60
|
Что есть "__root", что нету – без разницы.
|
Ну, не то чтобы её совсем не было, просто, она в другом.
__________________
There's always more than one way to skin a cat.
|
|
|
|
15.11.2012, 18:54
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
В Keil любая const ложится во флеш. Даже в голову не приходило как-то особенно описывать массив. Где ему еще размещаться-то?
|
|
|
|
15.11.2012, 21:58
|
|
Вид на жительство
Регистрация: 05.09.2007
Адрес: Новороссия ЛНР Рубежное -> РФ Калуга
Сообщений: 360
Сказал спасибо: 10
Сказали Спасибо 73 раз(а) в 58 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Hives
|
объясните, какой смысл извращаться со всякими "__root" & "__flash", если данные описаные как const все равно лягут как RO DATA во флеш?
|
А перед работой будут скопированы в RAM.
__________________
Политика России будет выглядеть неоднозначной до тех пор, пока не будет решен исход битвы.
Чем больше слёз тем больше облегчения, в слезах и заключается лечение.
Не зли меня
|
|
|
|
16.11.2012, 00:46
|
|
Прописка
Регистрация: 19.05.2012
Сообщений: 99
Сказал спасибо: 0
Сказали Спасибо 10 раз(а) в 8 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Цитата:
|
А перед работой будут скопированы в RAM.
|
если объявить без const - будут. С const - обращение идет к Flash - копировать нет смысла - память то линейная, в отличии от AVR.
|
|
|
|
16.11.2012, 00:52
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Murka-MakMur
|
А перед работой будут скопированы в RAM.
|
А если у меня массив на 45кб? Не смешите.
Я тут как-то картинки на экран выводил Надо было их хранить где-то. Размер спрайта - 145кб. Размер оперативы - 45кб, флеши 256кб. Копировал из const во внешнюю флеш (чтобы не сдирать флешку с платы) в несколько заходов. Оперативы просто бы не хватило.
|
|
|
|
22.11.2012, 16:38
|
|
Прохожий
Регистрация: 10.06.2008
Сообщений: 1
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Подскажите, можно ли системный такт SYSCLK вывести на какой-нибудь вывод порта?
|
|
|
|
22.11.2012, 16:41
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
kostinn, а вы Reference Manual читали? Ищите MCO (Master Clock Output).
|
|
|
|
22.11.2012, 20:57
|
|
Частый гость
Регистрация: 04.01.2009
Сообщений: 15
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Не получается получить прерывание по таймеру #2 в кейле. После инициализации пргограмма ждет в бесконечном цикле. В это время счетчик таймера нарастает, потом возникает прерывание, и на этом трассировка останавливается. Ощущение что процессор попадает не в обработчик перывания таймера, а в заглушку какого то дебагера.
Подскажете в чем ошибка?
Исходник прилагаю:
Код:
|
void TIM2_Handler(void)
{ TIM2-›SR &=~ TIM_SR_UIF;
GPIOA-›BSRR =GPIO_BSRR_BS3;
GPIOA-›BSRR =GPIO_BSRR_BR3;
}
int main(void)
{
RCC-›APB2ENR |= RCC_APB2ENR_IOPAEN;
GPIOA-›CRL &= ~GPIO_CRL_CNF3;
GPIOA-›CRL |= GPIO_CRL_MODE3_0;
GPIOA-›CRL &= ~GPIO_CRL_CNF2;
GPIOA-›CRL |= GPIO_CRL_MODE2_0;
RCC-›APB1ENR |= RCC_APB1ENR_TIM2EN;
TIM2-›PSC=2;
TIM2-›ARR=60;
TIM2-›DIER |= TIM_DIER_UIE;
TIM2-›CR1 |= (TIM_CR1_CEN | TIM_CR1_ARPE) ;
NVIC_EnableIRQ (TIM2_IRQn);
TIM2-›SR &=~ TIM_SR_UIF;
__enable_irq ();
while(1)
{
GPIOA-›BSRR =GPIO_BSRR_BS2
GPIOA-›BSRR =GPIO_BSRR_BR2;
}
} |
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:19.
|
|