这会在 Linux GCC 下编译和工作吗?
在 Github 上托管的 LoRa 网关堆栈中,我在 loragw_hal.h 中找到了以下构造
enum lgw_radio_type_e {
LGW_RADIO_TYPE_NONE,
LGW_RADIO_TYPE_SX1255,
LGW_RADIO_TYPE_SX1257
};
#define LGW_RF_CHAIN_NB 2 /* number of RF chains */
然后在 loragw_hal.c
static enum lgw_radio_type_e rf_radio_type[LGW_RF_CHAIN_NB];
编辑:该数组未在代码中的任何位置初始化
然后在函数中
setup_sx125x(uint8_t rf_chain, uint32_t freq_hz)
以下 switch 语句用于根据 rf_chain 参数选择 rf 链
switch (rf_radio_type[rf_chain]) {
case LGW_RADIO_TYPE_SX1255:
// some code
break;
case LGW_RADIO_TYPE_SX1257:
// some code
break;
default:
DEBUG_PRINTF("ERROR: UNEXPECTED VALUE %d FOR RADIO TYPE\n",
rf_radio_type[rf_chain]);
break;
}
rf_chain 参数设置为 1,当函数被调用时,它当然会选择默认的 Error 'unexpected rf chain'。
如果您对其产品有任何问题,版权所有者 Semtech Inc. 支持始终指向此代码作为参考。
但我有一种感觉,如果不进行任何修改,这段代码无论如何都不会运行。
所以我在这里向论坛提出的问题是,除了上面的这个构造没有真正意义之外,这不是一个错误的构造吗?
这会在 Linux GCC 下编译和工作吗?
我尝试在 GCC ARM 下使用此代码,但它似乎没有按计划工作。