STM32
直播中

douyin8

12年用户 1115经验值
私信 关注
[问答]

STVD中如何设置预编译选项?

请问大家一个IDE 的问题

我目前使用的是  STVD 的编译器。

想请问一下, 预编译选项 哪里有的设置。

例如 在 中断向量 文件中   如果 定义了STM8S208 就开CAN_RX_IRQHandler  等等~~

struct interrupt_vector const _vectab[] = {
。。。。
#if defined (STM8S208) || defined (STM8AF52Ax)
    {0x82, (interrupt_handler_t)CAN_RX_IRQHandler}, /* irq8 - CAN Rx interrupt */
    {0x82, (interrupt_handler_t)CAN_TX_IRQHandler}, /* irq9 - CAN Tx/ER/SC interrupt */
#elif defined (STM8S903)
    {0x82, (interrupt_handler_t)EXti_PORTF_IRQHandler}, /* irq8 - External interrupt 5 (GPIOF) */
    {0x82, (interrupt_handler_t)NonHandledInterrupt}, /* irq9 - Reserved */
#else /*STM8S207, STM8S105 or STM8AF62Ax or STM8AF626x*/
    {0x82, (interrupt_handler_t)NonHandledInterrupt}, /* irq8 - Reserved */
    {0x82, (interrupt_handler_t)NonHandledInterrupt}, /* irq9 - Reserved */
#endif /* STM8S208 or STM8AF52Ax */
    {0x82, (interrupt_handler_t)SPI_IRQHandler}, /* irq10 - SPI End of transfer interrupt */
    {0x82, (interrupt_handler_t)TIM1_UPD_OVF_TRG_BRK_IRQHandler}, /* irq11 - TIM1 Update/Overflow/Trigger/Break interrupt */
    {0x82, (interrupt_handler_t)TIM1_CAP_COM_IRQHandler}, /* irq12 - TIM1 Capture/Compare interrupt */
。。。
}
   

     我以前用过 IAR , 在IAR 中 工程的 option 可以添加这些预编译 项。
     但是在 STVD 中 不知道如何 设置?  如果 编译器 不能设置, 请问  这样的中断向量 文件, 在编译的时候, 它怎么识别我们定义的到底是哪种型号?

      又或者说 我们在哪里定义 这些 预编译选项呢?

回帖(1)

在STVD(IAR Embedded Workbench for STM8)中设置预编译选项的步骤如下:

1. 打开STVD,加载您的项目。

2. 在项目浏览器中,找到您想要修改预编译选项的源文件。

3. 右键单击该源文件,然后选择“Properties”。

4. 在“Properties”窗口中,导航到“C/C++ Compiler”选项卡。

5. 在“C/C++ Compiler”选项卡中,找到“Defines”部分。这里就是设置预编译选项的地方。

6. 要添加一个新的预编译选项,例如定义STM8S208,请点击“Defines”旁边的“Add”按钮。

7. 在弹出的对话框中,输入您想要定义的宏名称,例如“STM8S208”,然后点击“OK”。

8. 现在,您应该在“Defines”列表中看到新添加的宏定义。确保它已经被选中,然后点击“OK”或“Apply”以保存更改。

9. 接下来,您可以在源文件中使用这个宏定义来控制代码的编译。例如:

```c
#if defined (STM8S208) || defined (STM8AF52Ax)
    {0x82, (interrupt_handler_t)CAN_RX_IRQHandler}, /* irq8 - CAN Rx interrupt */
    {0x82, (interrupt_handler_t)CAN_TX_IRQHandler}, /* irq9 - CAN Tx/ER/SC interrupt */
#endif
```

10. 保存并重新编译您的项目,STVD将根据您设置的预编译选项来编译代码。

通过以上步骤,您可以在STVD中设置预编译选项,并根据这些选项控制代码的编译。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分