koyodza 0 11 мая, 2013 Опубликовано 11 мая, 2013 · Жалоба Нужно определить тип чипа, на котором выполняется прошивка. Есть CPUID base register (SCB_CPUID) Reset value: 0x411F C231 (STM32F1 series) Reset value: 0x412F C230 (STM32F2 and STM32L series) но здесь недостаточно информации. Конкретно нужно отличить F100 и F103, однако не помешал бы и более общий алгоритм. Понятно, что можно обратиться к периферии, которая есть только в одном МК, и при её отсутствии получить HardFault, но хотелось бы обойтись без этого Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flexz 0 11 мая, 2013 Опубликовано 11 мая, 2013 · Жалоба Видимо, вам нужен регистр DBGMCU_IDCODE Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexdos 0 11 мая, 2013 Опубликовано 11 мая, 2013 · Жалоба посмотрите вот здесь, обсуждают ту же тему. http://electronix.ru/forum/lofiversion/ind...hp/t100864.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
koyodza 0 11 мая, 2013 Опубликовано 11 мая, 2013 · Жалоба Ещё бы размер страницы флеша узнать. Не общий размер, а именно размер страницы. Хотя его можно вычислить зная общий размер, но может он где-то хранится? И размер ОЗУ до кучи :) Видимо, вам нужен регистр DBGMCU_IDCODE Для F103 в errata пишут о недоступности DBGMCU_IDCODE: The DBGMCU_IDCODE and DBGMCU_CR debug registers are accessible only in debug mode (not accessible by the user software). When these registers are read in user mode, the returned value is 0x00. посмотрите вот здесь Спасибо, интересная идея - через проверку возможности тактирования модулей. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться