Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Симулятор Keil
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
pr0m
Всем привет!

Откомпилированные примеры для STM32F107 и lwIP отлаживаются без проблем в железе, а когда пытаюсь пройтись симулятором - с нулевого адреса, где должны быть вектора, находятся нулики. Соответсно, симулятор стоит там на одном месте и никуда больше не идёт.
Подскажите, плиз, как настроить симулятор! С другими проектики, к-е сам создавал с нуля, такой проблемы нет. Чувствую, что-то не так с memory map в симуляторе.
akimych
С глюками симулятора столкнулся на STM32F100, он как и 107 симулятором периферии на самом деле не поддерживается.
А дальше происходит следующее, в настройках стоит, что ROM начинается с адреса 0x8000000, но симулятор туда сам не прыгает.
Надо ему подсказать через инишник либо прописать в настройках ROM с 0.
Можно для симулятора прописать настройки от 101го или 103го, тогда хоть какая-то периферия будет симулироваться.
Я вообще выбрал 101 в настройках (хотя реально 100) для проекта, на работоспособности это все равно никак не сказывается.
pr0m
Цитата(akimych @ Jan 28 2011, 22:27) *
С глюками симулятора столкнулся на STM32F100, он как и 107 симулятором периферии на самом деле не поддерживается.
А дальше происходит следующее, в настройках стоит, что ROM начинается с адреса 0x8000000, но симулятор туда сам не прыгает.
Надо ему подсказать через инишник либо прописать в настройках ROM с 0.
Можно для симулятора прописать настройки от 101го или 103го, тогда хоть какая-то периферия будет симулироваться.
Я вообще выбрал 101 в настройках (хотя реально 100) для проекта, на работоспособности это все равно никак не сказывается.


Угумс, я уже это выяснил. STM32F103 вроде нормально симулируется, а вот 107-й толком не поддерживает. На кейловско-армовском сайте наткнулся на пару вопросов от людей с теми же проблемами, впрочем, оставленные без ответа кейловцами.
Для себя нашёл пару решений, однако не решающих проблему полностью:
Вобщем, для 107-го, чтобы симулятор хотя бы стартовал:
1. ROM прописать с 0-го адреса.
2. Такой ini для симулятора:

FUNC void Setup (void) {
SP = _RDWORD(0x08000000); // Setup Stack Pointer
PC = _RDWORD(0x08000004); // Setup Program Counter
xPSR = 0x01000000; // Обязательно. Установка бита Thumb, иначе сразу же падает в Hard fault.
_WDWORD(0xE000ED08, 0x08000000); // Setup Vector Table Offset Register
}


// Без этого ругается на доступ к несуществующей памяти. Целым куском 0х4000000...0х4FFFFFF не позволяет, только по 128МБайт
MAP 0x40000000,0x43FFFFFF READ WRITE // Периферия1
MAP 0x44000000,0x47FFFFFF READ WRITE // Периферия2
MAP 0x48000000,0x4BFFFFFF READ WRITE // Периферия3
MAP 0x4C000000,0x4FFFFFFF READ WRITE // Периферия4

//load %L incremental // это видел в каком-то инишнике, не разобрался что такое

Setup();

g, main // опционально

Но всё равно периферия толком мне симулируется - у меня код зациклился на проверке бита готовности генератора HSE при переключении на оный, дальше даже не захотелось проверять.
akimych
Цитата
//load %L incremental // это видел в каком-то инишнике, не разобрался что такое

Это загрузка самой прошивки.
Подробнее тут http://www.keil.com/support/man/docs/uv4/uv4_cm_load.htm

Цитата
Но всё равно периферия толком мне симулируется

Потому как не знает кейл периферии 107го. Вообще не знает, в меню периферии только ядро. Какие там биты готовности...
Причем даже выбор 103го в настройках не факт, что поможет, у 107 ведь даже RCC отличается.
Penchev
Кто может подскажет в чем дело.При выборе 103-го периферия симулируется,но при отладке на STM32VLDISCOVERY стоит на месте время отладки.Это у меня одного или ограничения SWD?
andries5
Цитата(Penchev @ Jan 27 2012, 23:19) *
но при отладке на STM32VLDISCOVERY стоит на месте время отладки.Это у меня одного или ограничения SWD?

К большому сожалению и у меня также. Keil расчитан на 103.
Penchev
Цитата(andries5 @ Jan 28 2012, 16:21) *
К большому сожалению и у меня также. Keil расчитан на 103.


Попробовал IAR и Atollic TrueSTUDIO, то же самое. Может в железе это и на 103 не будет работать, Когда решусь в Discovery 103 вкинуть, проверю. Ну а на первое время придется SysTick пользовать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.