Автору не нужно было лезть в стартап файл и др. системные файлы. Те выводы что он сделал неправильные (видимо из-за недостатка опыта), в частности:salang писал(а):это частности, а в общем там говорится о том, что быстрого старта не вышло.
Отсюда первый вывод: хрен что заработает, пока вы не подключите CMSIS, или не напишите SystemInit() самостоятельно. Я не о том, что надо инициализировать контроллер вообще, а о том, что должна быть такая процедура. Если её нету, то исходник откажется компилироваться.
Посмотрите этот код. https://radiokot.ru/forum/viewtopic.php ... 5#p3422025Понятно, тут инициализация тактового генератора, без которой жить совсем никак нельзя.
Спойлер
Код: Выделить всё
#include "stm32f10x.h"
#define StackTop ((uint32_t)(0x20000000 + 20*1024))
static void Reset_Handler(void);
__attribute__((used,section(".isr_vector")))
void (*const g_pfnVectors[])(void) =
{
(void*)StackTop, // Указатель на начало стека.
Reset_Handler // Функция выполняемая при сбросе МК.
};
static void Reset_Handler(void)
{
RCC->APB2ENR = RCC_APB2ENR_IOPCEN; // Вкл. тактирование порта GPIOC.
GPIOC->CRH = GPIO_CRH_MODE13; // Настройка вывода PC13 как выхода.
while(1)
{
GPIOC->ODR ^= (1<<13); // Инвертирование состояния вывода PC13.
for (uint32_t i=0; i<1000000; i++);
}
}Меньше читайте статьи написанные начинающими. Из-за того что у них что-то не получилось, они могут предоставить информацию несоответствующую действительности.
Я написал что это ассоциация с МК. Сейчас PIC16, AVR (Tiny, Mega) и STM32F0, STM32F1 стоят примерно одинаково, но возможностей у STM32 намного больше.salang писал(а):Вы же понимаете, что это нереальный пример и так не бывает в принципе?



