尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
【回眸】CANTATA常见错误分析及解决方案
目录错误1原因及解决方案报错2 解决方案报错3解决方案报错4解决方案报错5解决方案报错6解决方案报错7解决方案错误1IT_pwm_drv_bb_input01/IT_pwm_drv_bb_input01.c:53: error: I9070 - incomplete type struct pwm_bb_register_pointers [4] is not allowedtypedef struct expected_pwm_drv_bb_av_struct { enum pwm_bb_phase ref_pwm_bb_phase_map_hrtim[4]; u_32 ref_pwm_bb_OENR_bits[4]; u_32 ref_pwm_bb_ODISR_bits[4]; struct pwm_bb_register_pointers ref_pwm_bb_reg_ptrs[4]; } expected_pwm_drv_bb_av_struct;原因及解决方案原因没找到struct pwm_bb_register_pointers解决方案PRIVATE const struct pwm_bb_register_pointers { volatile struct HRTIM_COMMON_tag * common; volatile struct HRTIM_TIMER_tag * tim; } pwm_bb_reg_ptrs[PWM_BB_HRTIM_PHASE_COUNT] { #ifndef CANTATA_TESTING { REG_HRTIM2_COMMON, REG_HRTIM2_TIMERA }, { REG_HRTIM2_COMMON, REG_HRTIM2_TIMERB }, { REG_HRTIM2_COMMON, REG_HRTIM2_TIMERC }, { REG_HRTIM2_COMMON, REG_HRTIM2_TIMERE } #else { Cantata_REG_HRTIM2_COMMON, Cantata_REG_HRTIM2_TIMERA }, { Cantata_REG_HRTIM2_COMMON, Cantata_REG_HRTIM2_TIMERB }, { Cantata_REG_HRTIM2_COMMON, Cantata_REG_HRTIM2_TIMERC }, { Cantata_REG_HRTIM2_COMMON, Cantata_REG_HRTIM2_TIMERE } #endif };报错2 c:/qa_systems/cantata/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: IT_pwm_drv_bb_input01/IT_pwm_drv_bb_input01.o:IT_pwm_drv_bb_input01.ci.sm.c:(.text0x82b): undefined reference to ACCESS_FUNCTION_pwm_drv_bb_PWM_BB_ConfigureHRTIMcollect2.exe: error: ld returned 1 exit status解决方案这个说明无法直接测试PWM_BB_ConfigureHRTIM函数需要通过其他方法测试。比如说搜索PWM_BB_ConfigureHRTIM函数看其他函数是否调用该函数。报错3ITPortOutput01/ITPortOutput01.c:271: error: I9144 - a value of type int cannot be used to initialize an entity of typePortConfigType (aka struct PortConfigTypedef) PortConfigType portcfg PORTPINOUT; ^C:\qasystems\cantata\inc\cppth.h:884: warning: I9223 - function ACCESSFUNCTIONPortPortAssembleGPIOConfig declared implicitly ACCESSFUNCTION##file####func ^ in expansion of macro CPPTHACCESSFUNCTION at line 2754 in expansion of macro ACCESSFUNCTION at line 281 of ITPortOutput01/ITPortOutput01.c returnValue ACCESSFUNCTION(Port, PortAssembleGPIOConfig)(portcfg); ^ITPortOutput01/ITPortOutput01.c:281: error: I9513 - a value of type int cannot be assigned to an entity of type structgpiopinconfig returnValue ACCESSFUNCTION(Port, PortAssembleGPIOConfig)(portcfg); ^ITPortOutput01/ITPortOutput01.c:272: warning: I9550 - variable returnValue was set but never used struct gpiopinconfig returnValue; ^Fatal Error I1112: Coverage Instrumentation failed解决方案PortConfigType portcfg 初始值不对报错4IT_Port_Output01/IT_Port_Output01.c:292: error: I9513 - a value of type int cannot be assigned to an entity of type structgpio_pin_configreturnValue ACCESS_FUNCTION(Port, Port_Assemble_GPIO_Config)(port_cfg);解决方案说明该函数无法直接测试搜索代码里是否有包含该函数的内容报错5c:/qa_systems/cantata/mingw/lib/gcc/mingw32/8.2.0/include/stddef.h:406: error: I9144 - a value of type void * cannot be used to initialize an entity of type constPort_ConfigType#define NULL ((void *)0)^in expansion of macro NULL at line 300 ofIT_Port_Output01/IT_Port_Output01.cconst Port_ConfigType ConfigPtr NULL;^Fatal Error I1112: Coverage Instrumentation failedmake[3]: *** [IT_Port_Output01/test.mk:127: IT_Port_Output01/IT_Port_Output01.o] Error 2Converting CTR file to HTML解决方案NULL指针和 void*0一样报错6^C:\qa_systems\cantata\inc\cppth.h:870: error: I9154 - expression must have struct or union type but it has type struct nvm_state_def*(*(av_##file.ref_##var))^in expansion of macro CPPTH_ACCESS_VARIABLE at line 2747in expansion of macro ACCESS_VARIABLE at line 613 ofIT_NvM_Input01/IT_NvM_Input01.cACCESS_VARIABLE(NvM, nvm_states [0].read_state) NVM_STATE_READ_IDLE;^C:\qa_systems\cantata\inc\cppth.h:870: error: I9154 - expression must have struct or union type but it has type struct nvm_state_def*(*(av_##file.ref_##var))^in expansion of macro CPPTH_ACCESS_VARIABLE at line 2747in expansion of macro ACCESS_VARIABLE at line 615 ofIT_NvM_Input01/IT_NvM_Input01.cACCESS_VARIABLE(NvM, nvm_states [0].write_state) NVM_STATE_READ_IDLE;解决方案ACCESS_VARIABLE(NvM, nvm_states [0].read_state) NVM_STATE_READ_IDLE;这样写不对修改后ACCESS_VARIABLE(NvM, nvm_states)[0].read_state NVM_STATE_READ_IDLE;报错7IT_Nvm_Input02/IT_Nvm_Input02.c:311:45: error: assignment of member flags in read-only objectACCESS_VARIABLE(NvM, nvm_config_flash)[0].flags 0x0400U;解决方案这个错误说明赋值的这个变量其实是常量无法更改要么曲线救国要么屏蔽
RELATED

相关推荐

RPCS3 怎么装:手把手把 PS3 模拟器跑上 PC 的四步操作

RPCS3 怎么装:手把手把 PS3 模拟器跑上 PC 的四步操作

RPCS3 怎么装:手把手把 PS3 模拟器跑上 PC 的四步操作 【免费下载链接】rpcs3 PlayStation 3 emulator and debugger 项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3 RPCS3 是一款免费开源的 PS3 模拟器,用 C 写成,能在 Win…

📅 2026/9/8 18:43:15
YOLOv13改进策略【注意力机制篇】| ICASSP 2023 EMA 高效多尺度注意力,跨空间学习提高远距离建模依赖

YOLOv13改进策略【注意力机制篇】| ICASSP 2023 EMA 高效多尺度注意力,跨空间学习提高远距离建模依赖

本文基于 YOLOv13 官方仓库(iMoonLab/yolov13,ultralytics 8.3.63 fork) 实测整理,Windows/CPU 全程可跑。 前言 YOLOv13(HyperACE 超图 + FullPAD 全流水线聚合架构)采用全新的 A2C2f/DSConv backbone 结构,但注意力模块的即插即用特性不变。这篇把 EMA(Efficient Mu…

📅 2026/9/8 18:43:15
Astro Markdoc 集成演化全解:从 0.0.1 到 2.0.9 的关键能力、配置语义与升级路径

Astro Markdoc 集成演化全解:从 0.0.1 到 2.0.9 的关键能力、配置语义与升级路径

Astro Markdoc 集成演化全解:从 0.0.1 到 2.0.9 的关键能力、配置语义与升级路径 【免费下载链接】astro The web framework for content-driven websites. ⭐️ Star to support our work! 项目地址: https://gitcode.com/GitHub_Trending/as/astro 本文以 …

📅 2026/9/8 18:43:15
MORE NEWS

更多资讯

📰

Hadoop+Spark+Python:起点小说数据可视化分析系统全链路实战

说起计算机毕业设计,这几年最热门的赛道肯定绕不开大数据方向,而 Hadoop Spark Python 这套技术栈更是被各位导师反复点名。如果你正好在纠结选什么题目,我强烈建议你看看“起点小说网数据可视化分析系统”这个思路:爬虫从起点小…

📰

awesome-copilot 中的 Droid 自定义代理:Droid CLI 安装与 droid exec 自动化实战指南

awesome-copilot 中的 Droid 自定义代理:Droid CLI 安装与 droid exec 自动化实战指南 【免费下载链接】awesome-copilot Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot. 项目地址: http…

📰

从AI生成到公网可访问:网站部署与运维全流程指南

如果最近刷到过AI建站的演示,你会发现这个流程已经被压缩到让人怀疑人生:输入一句话,生成一个页面;再说一句,加一个登录框;再补一句,连背景图和动效都有了。但真正动手做的时候,很多…

📰

C语言复古游戏修复实战:52数字排序中的数组、随机数与缓冲区陷阱

很多老C语言教材或网盘资源里,都躺着不少“能编译但跑起来很怪”的复古小游戏代码。“52数字排序”就是其中一个典型代表,我最早看到它是在一份大学机房遗留的练习册里,后来又在好几个技术社区见到有人贴出来问“为什么我的排序结果不对”“为…

📰

批量修改Word文档行距的两种高效方案:python-docx与VBA宏

批量修改 Word 文档段落行距,听起来不像是什么高难度需求,但真遇到“几十份文档要统一行距”这个场景时,绝大多数人的第一反应仍然是打开 Word、CtrlA、改行距、保存下一份,如此循环。毕业论文分章节提交、标书按模块拆分、制度文…

📰

Skills不是函数,而是智能体的动作契约

1. 这不是编程语言,而是智能体的“肌肉记忆”——Skills 的本质重新定义你打开一个智能体项目文档,看到 SKILL.md 文件,第一反应可能是:“哦,又一个配置文件?”接着翻到目录页,发现 Skills 目录…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬