stvd 4.3.9编译stm8s工程报如下错误:
Compiling sx1276.c...
cxstm8 +modsl +debug -pxp -no +split -pp -l -istm8s_stdperiph_driverinc -i"C:Program Files (x86)COSMICCXSTM8Hstm8" -i"C:Program Files (x86)STMicroelectronicsst_toolsetinclude" -clDebug -coDebug sx1276.c
#error cpstm8 sx1276.c:70(35) missing prototype
#error cpstm8 sx1276.c:276(53) missing prototype
sx1276.c:
The command: "cxstm8 +modsl +debug -pxp -no +split -pp -l -istm8s_stdperiph_driverinc -i"C:Program Files (x86)COSMICCXSTM8Hstm8" -i"C:Program Files (x86)STMicroelectronicsst_toolsetinclude" -clDebug -coDebug sx1276.c" has failed, the returned value is: 1
exit code=1.
问题原因:
sx1276.c:70行调用函数:Value = lpTypefunc.lpByteReadfunc(); lpByteReadfunc()函数没有形参,需要加上void。
typedef struct {
void (*lpByteWritefunc)(unsigned char src);
unsigned char (*lpByteReadfunc)();
void (*lpSwitchEnStatus)(cmdEntype_t cmd);
void (*paSwitchCmdfunc)(cmdpaType_t cmd);
void (*lpRecvDataTousr)(unsigned char *lpbuf,unsigned short length);
} lpCtrlTypefunc_t;
修改为:
typedef struct {
void (*lpByteWritefunc)(unsigned char src);
unsigned char (*lpByteReadfunc)(void); /* 加上void */
void (*lpSwitchEnStatus)(cmdEntype_t cmd);
void (*paSwitchCmdfunc)(cmdpaType_t cmd);
void (*lpRecvDataTousr)(unsigned char *lpbuf,unsigned short length);
} lpCtrlTypefunc_t;
unsigned char RF_SPI_READ_BYTE()
{
unsigned char j;
unsigned char i;
j=0;
for (i = 0; i < 8; i++){
RF_CKL_H;
j = (j << 1); // shift 1 place to the left or shift in 0 //
if( SX1278_SDO ) // check to see if bit is high //
j = j | 0x01; // if high, make bit high //
// toggle clock high //
RF_CKL_L; // toggle clock low //
}
return j; // toggle clock low //
}
修改为:
unsigned char RF_SPI_READ_BYTE(void) /* 加上void */
{
unsigned char j;
unsigned char i;
j=0;
for (i = 0; i < 8; i++){
RF_CKL_H;
j = (j << 1); // shift 1 place to the left or shift in 0 //
if( SX1278_SDO ) // check to see if bit is high //
j = j | 0x01; // if high, make bit high //
// toggle clock high //
RF_CKL_L; // toggle clock low //
}
return j; // toggle clock low //
}
上一篇:stvd+stm8s: The Flash Memory Read-out protection option must be disabled
下一篇:stvd+stm8s: ERROR:before starting debug session, please, select a target
推荐阅读
史海拾趣
随着全球化进程的加速推进,E-Z-HOOK公司开始积极拓展国际市场。他们通过参加国际展会、建立海外销售网络等方式,将产品推向全球各地。同时,公司还积极寻求与国际知名企业的合作机会,共同开发新技术和新产品。这些努力使得E-Z-HOOK公司的品牌影响力逐渐扩大,在全球范围内树立了良好的声誉和形象。
在1956年的一个晴朗午后,E-Z-HOOK的创始人阿尔伯特·史密斯(化名)在实验室里遇到了一个棘手的问题。他正在测试一个复杂的电子系统,但发现现有的测试工具无法满足他的需求。于是,他动手设计并制造出了第一个E-Z-HOOK测试钩,这个简单但实用的工具极大地方便了他的工作。史密斯看到了这个产品的巨大潜力,于是决定成立一家公司来专门生产这种测试钩。这就是E-Z-HOOK公司的起源。
CSM自成立以来,便积极承担国家和地方具有战略性意义的重大攻关研发项目。其中,公司前身南京市物联网研究与产业化有限公司RFID事业部申报的“超高频与微波RFID读写器射频芯片研发”项目获得了国家工信部物联网专项资金项目资助,并在江苏省名列第一。这些项目的成功完成不仅展示了CSM在技术研发方面的实力,也为国家科技进步和产业发展做出了积极贡献。
随着技术的不断进步和市场的变化,EDAL公司意识到必须不断优化产品以满足客户的需求。公司投入大量研发资源,对EDA工具进行迭代升级,推出了更加智能化、用户友好的产品。同时,EDAL公司积极拓展市场,与全球各大芯片设计公司建立了合作关系,将产品销售到世界各地。
随着电子设备的日益复杂,对内部连接件的要求也越来越高。Deltrol Controls意识到,传统的连接方式已经无法满足行业的需求。为此,公司投入大量资金研发新型软管组件,该组件不仅具有优异的耐温、耐压性能,而且安装简便、维护方便。这一突破性的产品迅速赢得了客户的青睐,Deltrol Controls在电子行业的影响力也进一步扩大。
洲光源公司自2011年成立以来,一直致力于红外LED光源器件的研发和生产。在公司成立的初期,市场上对于红外LED的需求并不高,但洲光源公司坚信其未来的潜力。通过不断的技术研发和创新,洲光源成功开发出了高效、稳定、可靠的红外LED产品,逐渐在市场上树立了良好的口碑。随着智能家居、安防监控等领域的快速发展,红外LED的需求迅速增长,洲光源公司也迎来了发展的黄金时期。
数字后端流程 1. 数据准备。对于 CDN 的 Silicon Ensemble而言后端设计所需的数据主要有是Foundry厂提供的标准单元、宏单元和I/O Pad的库文件,它包括物理库、时序库及网表库,分别以.lef、.tlf和.v的形 ...… 查看全部问答∨ |
摘 要:通过设计实例详细介绍了用Verilog HDL语言开发FPGA/CPLD的方法,并通过与其他各种输入方式的比较,显示出使用Verilog HDL语言的优越性。 关键词: Verilog HDL;FPGA/CPLD;EDA 1 引言 近30年来,由于微电子学和计算机科学的迅速发展, ...… 查看全部问答∨ |
注: u-boot 使用的是打上: http://www.hhcn.com/cgi-bin/topic.cgi?forum=3&topic=651&show=0 上keety大侠提供的补丁生成的u-boot-1.1.3 这段时间不断有人问我u-boot启动内核的问题,记得在上次提供的u-boot源码中提到 ...… 查看全部问答∨ |
|
我用EVC4.0建的Active X工程,不添加任何代码,在wince5.0模拟器上,将x86目录下的regsvrce和.ocx文件拷贝到/windows目录下,运行regsvrce xxx.ocx注册控件,跳出loadlibrary xxx.ocx failed。这是怎么回事啊,哪位大侠注册过wince下的ocx请指教… 查看全部问答∨ |
|
Zigbee无线模块|TI CC2530芯片|兼容GPS1613封装|透明传输 一、模块功能 HCV104是一款1613小封装模块,专为低成本、低功耗、低电压、工作在2.4GHz的ISM频段的无线Zigbee模块,基于IEEE 802.15.4协议开发,主要应用在LED路灯、办公场所及家庭、工业等LED调光领域。系统采用了标准ZIGBEE无线技术,符合工业标 ...… 查看全部问答∨ |
在模块化编程里面 在.c文件里定义一个函数 void LedDisplay(uint16 pBuff[]), 然后在.h文件里声明这个函数extern void LedDisplay(uint16 pBuff[]); uint16在一个头文件里定义了,这个.c文件里也包含这个重定义头文 ...… 查看全部问答∨ |