Доброго времени суток. Не стал открывать новую тему, так как вопрос про препроцессор ассемблера...Но для IAR.
Тема такая:
Обкатываю собственную библиотеку. Есть несколько плат с предустановленными процессорами STM32F. В опциях компилятора, во вкладке препроцессора задаю тип платы, например OPEN407Z.
Есть файл "board.h" в котором подключаю нужный хидер для целевого варианта проекта. Начало выглядит так:
CODE
/*******************************************************************************
MCU configs
*******************************************************************************/
#if defined OPEN107V /* Defined WaveShare Open107V board */
#define STM32F10X_CL 1 /* Open107V on board target MCU */
#include "stm32f10x.h" /* Link MCU definitions */
#define BOARD_CFG_MCU_HSE_OSC_CLOCK 25000000U /* External quartz clock */
#elif defined OPEN407Z /* Defined WaveShare Open407Z board */
#define STM32F40XX 1 /* Open407Z on board target MCU */
#include "stm32f4xx.h" /* Link MCU definitions */
#define BOARD_CFG_MCU_HSE_OSC_CLOCK 8000000U /* External quartz clock */
#endif
#ifndef __ASSEMBLER__
#include "stdafx.h"
..........
Тут все прекрасно работает. Все драйверы периферии для разных типов МК подключают нужные хедеры и все компилится без ошибок.
Теперь для каждого варианта МК мне нужно подключить ассемблерный стартап. Вот тут затык. В начале *.s фала вставляю вот такой код препроцессора:
CODE
#define __ASSEMBLER__
#include "board.h"
#if defined STM32F40XX
MODULE ?cstartup
............................
Но! После строчки "#if defined STM32F40XX" тело стартапа нифига не компилится!
В чем я ошибаюсь?
Спасибо!