Спасибо всем. результат таков:
1. через __segment_size получаем размер таблицы векоров, но это значение нельзя использовать препроцессором, т.е.
Код
#pragma section=".intvec"
#define FLASH_VECTOR_TABLE_SIZE ((uint32_t)__segment_size(".intvec"))
#define FLASH_WRITE_BLOCK_SIZE (512)
// !!! --- Это работать не будет ---
#if (FLASH_WRITE_BLOCK_SIZE < FLASH_VECTOR_TABLE_SIZE)
#error "Error FLASH_WRITE_BLOCK_SIZE"
#endif
2. через EXPORT __vector_table в ассемблере (startup_stm32f40_41xxx.s ), затем extern uin32_t __vector_table или extern uin32_t* __vector_table в си, можно определить адрес расположения __vector_table или значение записанное по этому адресу __vector_table[0], но размер таблицы не определить, т.к. опереция sizeof(__vector_table)/sizeof(__vector_table[0]) выдаст 1.