#if (CFG_APP_NS_IUS) if(CURRENT_APP_START_ADDRESS == NS_APP1_START_ADDRESS){ NS_LOG_INFO("application 1 start new ...\r\n"); PWR->VTOR_REG = 0x01004000 | (1 << 31); }else if(CURRENT_APP_START_ADDRESS == NS_APP2_START_ADDRESS){ NS_LOG_INFO("application 2 start new ...\r\n"); PWR->VTOR_REG = 0x01020000 | (1 << 31); } #endif 是什么意思
时间: 2024-04-10 11:31:56 浏览: 90
arm.rar_LPC2103_flash.i_app_cfg.h lpc21
这段代码是一个条件语句,根据宏定义 `CFG_APP_NS_IUS` 的值来判断是否执行其中的代码块。如果 `CFG_APP_NS_IUS` 宏定义为真,则会进入条件语句。在条件语句中,根据 `CURRENT_APP_START_ADDRESS` 的值来确定执行的逻辑。
如果 `CURRENT_APP_START_ADDRESS` 等于 `NS_APP1_START_ADDRESS`,则会打印一条日志信息 "application 1 start new ...",并将 PWR->VTOR_REG 寄存器的值设置为 0x01004000 或运算上 (1 << 31)。
如果 `CURRENT_APP_START_ADDRESS` 等于 `NS_APP2_START_ADDRESS`,则会打印一条日志信息 "application 2 start new ...",并将 PWR->VTOR_REG 寄存器的值设置为 0x01020000 或运算上 (1 << 31)。
总的来说,这段代码根据 `CURRENT_APP_START_ADDRESS` 的不同值,执行不同的逻辑,并对寄存器进行设置。
阅读全文