程英茂 发表于 2024-9-24 19:42

沁恒CH579M-R1开发板免费测评

本帖最后由 程英茂 于 2024-9-24 19:51 编辑

<p> &nbsp;</p>

<p>为了能编译0Error,0Warning</p>

<p>我翻阅了一天的百度和文心一言,</p>

<p>说实话我看不懂,</p>

<p>但我听话,</p>

<p>相信Ai的解决方法,</p>

<p>于是就成了,</p>

<p>故事的开始是KEIL安装例程报错,</p>

<p>CH579M-R1-1v2例程找不到,</p>

<p>直到晚上找到这个链接:</p>

<p><a href="https://bbs.eeworld.com.cn/elecplay/content/2bd72cdb">【沁恒CH579M-R1开发板免费测评,丰富外设等你体验】测评|【沁恒CH579M-R1开发板免费测评,丰富外设等你体验】免费试用_电子工程世界 (eeworld.com.cn)</a></p>

<p>这个部分:</p>

<p> &nbsp;</p>

<p><a href="https://bbs.eeworld.com.cn/elecplay.php?action=show&amp;op=download&amp;id=137&amp;did=1" target="_blank">https://bbs.eeworld.com.cn/elecplay.php?action=show&amp;op=download&amp;id=137&amp;did=1</a></p>

<p><a href="https://bbs.eeworld.com.cn/elecplay.php?action=show&amp;op=download&amp;id=137&amp;did=2" target="_blank">https://bbs.eeworld.com.cn/elecplay.php?action=show&amp;op=download&amp;id=137&amp;did=2</a></p>

<p>才有点眉目,</p>

<p>看了很多别人的测评,</p>

<p>没有源码,</p>

<p>无从下手,</p>

<p>于是有了如下的编译,</p>

<p>遇到的报错有:</p>

<p>第一个,是关于__packet的,</p>

<p>解决方法:注释掉//__packet</p>

<p>&nbsp;</p>

<p>第二个是:</p>

<p>../SRC/StdPeriphDriver/CH57x_sys.c(139): error: call to undeclared function &#39;__nop&#39;; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 139 | while(i--) { __nop(); __nop(); } | ^ 1 error generated.</p>

<p>解决方法:</p>

<p>这个错误信息表示在文件`../SRC/StdPeriphDriver/CH57x_sys.c`的第139行,调用了一个未声明的函数`__nop()`。ISO C99及以后的版本不支持隐式函数声明。为了解决这个问题,你需要在使用`__nop()`之前声明它,或者包含定义它的头文件。</p>

<p>&nbsp;</p>

<p>简而言之:</p>

<p>如何声明</p>

<p>要声明一个函数,你需要提供函数的返回类型、函数名以及参数列表(如果有的话)。在这个例子中,`__nop()`函数没有参数,所以我们只需要声明它的返回类型。通常,`__nop()`是一个空操作(no operation)函数,它不执行任何操作并返回void。以下是一个可能的声明:</p>

<p>```c<br />
void __nop(void);<br />
```</p>

<p>将这个声明放在你的代码中的适当位置,例如在文件的开头或者在使用该函数之前。这样,编译器就能知道`__nop()`的存在,并且不会报错。</p>

<p>&nbsp;</p>

<p>第三个错误:</p>

<p>Rebuild started: Project: CH57x *** Using Compiler &#39;V6.21&#39;, folder: &#39;E:\Keil_v5\ARM\ARMCLANG\Bin&#39; Rebuild target &#39;CH57x&#39; compiling Main.c... compiling CH57x_adc.c... compiling CH57x_clk.c... compiling CH57x_flash.c... compiling CH57x_gpio.c... compiling CH57x_lcd.c... compiling CH57x_pwm.c... compiling CH57x_pwr.c... compiling CH57x_spi0.c... compiling CH57x_sys.c... compiling CH57x_timer0.c... compiling CH57x_uart1.c... assembling startup_ARMCM0.s... linking... .\obj\CH57x.axf: Error: L6218E: Undefined symbol __nop (referred from ch57x_sys.o). Not enough information to list image symbols. Not enough information to list load addresses in the image map. Finished: 2 information, 0 warning and 1 error messages. &quot;.\obj\CH57x.axf&quot; - 1 Error(s), 0 Warning(s). Target not created. Build Time Elapsed: 00:00:24</p>

<p>&nbsp;</p>

<p>解决方法:</p>

<p>这个错误信息表示在链接过程中,找不到名为 &quot;__nop&quot; 的符号。这可能是因为在项目中缺少了定义 &quot;__nop&quot; 的源文件或者库文件。为了解决这个问题,你需要检查以下几点:</p>

<ol>
        <li>确保你的项目中包含了定义 &quot;__nop&quot; 的源文件或库文件。</li>
        <li>检查编译选项和链接选项,确保它们与你的代码和库兼容。</li>
        <li>如果 &quot;__nop&quot; 是一个外部库函数,确保你已经正确地包含了该库。</li>
</ol>

<p>具体方案:</p>

<p>为了解决这个问题,你可以尝试以下具体方案:</p>

<p>1. 检查项目中是否包含了定义 &quot;__nop&quot; 的源文件或库文件。如果没有,你需要添加相应的文件。<br />
2. 如果 &quot;__nop&quot; 是一个外部库函数,确保你已经正确地包含了该库。你可以在项目设置中检查库文件的路径和链接选项。<br />
3. 检查编译选项和链接选项,确保它们与你的代码和库兼容。你可以在项目设置中检查这些选项。<br />
4. 如果以上步骤都无法解决问题,你可以尝试在网上搜索 &quot;__nop&quot; 的定义,看看是否有其他人遇到了类似的问题并提供了解决方案。<br />
5. 如果问题仍然存在,你可以考虑在相关的技术论坛或社区寻求帮助,提供详细的错误信息和项目设置,以便他人更好地帮助你解决问题。</p>

<p>&nbsp;</p>

<p>定义 &quot;__nop&quot; 的源文件或库文件</p>

<p>&quot;__nop&quot; 是一个汇编指令,通常用于表示一个空操作(no operation)。在某些情况下,编译器可能会使用 &quot;__nop&quot; 作为占位符,以便在生成的机器代码中插入一个空操作。</p>

<p>如果你的项目中缺少了定义 &quot;__nop&quot; 的源文件或库文件,你可以尝试以下方法来解决这个问题:</p>

<p>1. 在你的项目中添加一个名为 &quot;nop.s&quot; 的汇编源文件,并在其中定义 &quot;__nop&quot; 指令。例如:</p>

<p>```assembly<br />
&nbsp; &nbsp; .global __nop<br />
&nbsp; &nbsp; __nop:<br />
&nbsp; &nbsp; &nbsp; &nbsp; mov r0, r0<br />
```</p>

<p>2. 如果你的项目使用了某个特定的硬件平台或开发板,你可以查找该平台的官方文档或示例代码,看看是否有提供定义 &quot;__nop&quot; 的文件。</p>

<p>3. 如果你的项目依赖于某个外部库,你可以检查该库的文档或源代码,看看是否有提供定义 &quot;__nop&quot; 的文件。</p>

<p>请注意,具体的解决方案可能因项目和平台的不同而有所不同。你需要根据你的项目需求和环境来确定如何添加或修改 &quot;__nop&quot; 的定义。</p>

<p>&nbsp;</p>

<p>于是有了开头的结果:</p>

<p> &nbsp;</p>

<p>后记,之前因为微信被封了,加不了群,获得不到帮助,所以遇到问题就退缩了,我期待别人的测评能先开一条路,时间过了太久,</p>

<p>我也记不得是哪里申请的开发板,还是我从厂家和ch32v307一起20元邮费获得的,总之刚刚开始,祝我顺利吧,</p>

<p>开发者有开发板是会遵守测评约定的,只是可能正在经历挣扎<img height="52" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/pleased.gif" width="48" /></p>

<p>&nbsp;</p>

<p>也许自己Debug一遍,才能真正感到苦恼到碰运气到找到答案到解决问题的快乐,最终代码不上传了,是第一个ADC例程基础上改的,</p>

<p>如果有比我还白的开发者,问我要ZIP就好,</p>

okhxyyo 发表于 2024-9-25 10:18

<p>加油!遇到问题可以在论坛发帖,管管们看到了也可以帮你找人问一下</p>

freebsder 发表于 2024-9-25 14:25

<p>好难得看见还有用51的</p>

程英茂 发表于 2024-10-16 07:37

<p>回来过</p>
页: [1]
查看完整版本: 沁恒CH579M-R1开发板免费测评