22.11.2013, 16:36
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Почистил. nixto , если так люб дракон, открой ветку и сбацай мастер класс .
Вот только окромя алгоритма пролива супа на нем вряд ли что выйдет...
__________________
Осторожно , злой кот
|
|
|
|
25.11.2013, 16:03
|
|
Гражданин KAZUS.RU
Регистрация: 06.04.2010
Адрес: Санкт-Петербург - Волжский
Сообщений: 529
Сказал спасибо: 74
Сказали Спасибо 56 раз(а) в 45 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Как в Keil 4.7 посмотреть задействована ли фун-ия или оператор в конкретном месте программы?
|
|
|
|
25.11.2013, 18:10
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от MaxiMuz79
|
Как в Keil 4.7 посмотреть задействована ли фун-ия или оператор в конкретном месте программы?
|
Что значит "задействована" ?
Могу погадать.
Открываешь окно Source Browser Windows.
Вбиваешь в Symbol искомое , и ниже будут все определения и референсы .
Причем можно даже видеть что происходит с элементом :
запись, чтение или взятие адреса .
__________________
Осторожно , злой кот
|
|
|
|
25.11.2013, 23:37
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
ну я так понимаю, вопрос, не соптимизировал ли компилятор данную строку.
Поставьте там точку останова. Может IDE её поставить на позицию ниже. (значит оптимизирована) а может и поставить. Тогда можно перейти в окно дизасемблера и пройти по асму.
В целом, надо понимать, что компилятор в любом случае выполняет ВАШУ программу. Если тот или иной оператор улетел, значит в нём просто нет смысла. При этом компилятор может прямо написать "в дальнейшем тексте нет смысла".
|
|
|
|
26.11.2013, 14:57
|
|
Гражданин KAZUS.RU
Регистрация: 06.04.2010
Адрес: Санкт-Петербург - Волжский
Сообщений: 529
Сказал спасибо: 74
Сказали Спасибо 56 раз(а) в 45 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от dosikus
|
Что значит "задействована" ?
|
не раскрыл я вопрос: как узнать задействована функция или команда в конкретном месте программы после ее компиляции, или, как сказал SasaVitebsk не заоптимизирована ли команда ?
Вообще по хорошему посмотреть бы асм-файл исходного кода.
|
|
|
|
26.11.2013, 15:14
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от MaxiMuz79
|
Вообще по хорошему посмотреть бы асм-файл исходного кода.
|
Это уже теплее:
Отмечаешь галки на вкладке Listing.
Пересобираешь проект и в контекстном меню появится - открыть листинг.
__________________
Осторожно , злой кот
|
|
|
|
26.11.2013, 16:36
|
|
Гражданин KAZUS.RU
Регистрация: 06.04.2010
Адрес: Санкт-Петербург - Волжский
Сообщений: 529
Сказал спасибо: 74
Сказали Спасибо 56 раз(а) в 45 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от dosikus
|
Отмечаешь галки на вкладке Listing.
|
у меня почемуто "open list file" - неактивизировано.
И в настройках такая картинка:
|
|
|
|
26.11.2013, 20:31
|
|
Гражданин KAZUS.RU
Регистрация: 16.02.2012
Сообщений: 441
Сказал спасибо: 89
Сказали Спасибо 735 раз(а) в 149 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
непонятно на счет калибровки АЦП - результат ADC_GetCalibrationFactor как-то нужно учитывать или он применяется автоматически ?
|
|
|
|
27.11.2013, 08:06
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Автоматически
|
|
|
|
28.11.2013, 17:14
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Господа, подскажите, что за глюк. Проц STM32F103RBT6 в корпусе LQFP64. Запускаю TIM1_CH2 и TIM1_CH3 в режиме PWM.
Код:
|
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
TIM_OCInitTypeDef TIM_OCInitStruct;
TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInitStruct.TIM_Period = 10;
TIM_TimeBaseInitStruct.TIM_Prescaler = 105;
TIM_TimeBaseInitStruct.TIM_RepetitionCounter = 0;
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseInitStruct);
TIM_Cmd(TIM1, ENABLE);
TIM_CtrlPWMOutputs(TIM1, ENABLE);
TIM_OCInitStruct.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStruct.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStruct.TIM_OutputNState = TIM_OutputNState_Disable;
TIM_OCInitStruct.TIM_Pulse = TIM_TimeBaseInitStruct.TIM_Period/2;
TIM_OCInitStruct.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OCInitStruct.TIM_OCNPolarity = TIM_OCPolarity_High;
TIM_OCInitStruct.TIM_OCIdleState = TIM_OCIdleState_Set;
TIM_OCInitStruct.TIM_OCNIdleState = TIM_OCNIdleState_Reset;
TIM_OC2Init(TIM1, &TIM_OCInitStruct);
TIM_OC3Init(TIM1, &TIM_OCInitStruct); |
Оба пина PA9 и PA10 сконфигурированы правильно. На третьем канале есть сигнал. А на втором ничего. Если пины физически коротнуть, видно, что PA9 висит в воздухе. В регистре CRH значения MODE и CNF у пинов А9 и А10 одинаковые. Все должно работать, но на РА9 третье состояние. Почему?
Позже попробую на другой плате другой проц, но хочется разобраться уже сейчас.
Еще вопрос обладателям J-Link'a. У вас отладка по SWD c Trace работает? Мой ST-Link оказался первой версии. Trace не поддерживает. Заказал новый. А ULINK2 по SWD входит в отладку и ничего не делает. Хотя вроде все последнее установлено.
Последний раз редактировалось Easyrider83; 28.11.2013 в 17:57.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:24.
|
|