Цитата(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 при переключении на оный, дальше даже не захотелось проверять.