【RISC-V MCU CH32V103测评】- 5:离开API进入Assembly不成,重返API......
本帖最后由 MianQi 于 2021-2-19 10:20 编辑<p>前一个帖子,试用EXTI报错。本想按照之前提交的测评计划开始测试汇编代码,但是资料不够,只有一个地址映射表,没有寄存器的地址,而且,在芯片介绍里只是提到了“RISC-V V3A”,没有说用的是哪一种指令模式,所以暂时只能作罢。</p>
<p> </p>
<p>继续测试API, 这次想要测试IIC驱动的EEPROM - 24C08N:</p>
<p></p>
<p>,依然出错。之前,我想要熟悉一下沁恒的API,所以每个实例都是把示例代码手输进去,这次为了保险起见,直接拷贝粘贴,但是以然不能通过,这是什么原因?</p>
<p> </p>
<p>先看来自这里的代码——https://bbs.21ic.com/forum.php?mod=viewthread&tid=3048142&page=&extra=#pid11638428:、</p>
<p>粘贴就有错:</p>
<p>选择“Save as UTF-8”可以过去。</p>
<p>接下来报错:</p>
<p>解决办法是右键点击项目名称,在属性设置中将硬件路径加进去:</p>
<p></p>
<p> </p>
<p>出现下述错误:</p>
<pre>
<code>10:04:18 **** Incremental Build of configuration obj for project CH32V103C8T6 ****
make -j4 all
../User/main.c: In function 'main':
../User/main.c:4:9: error: unknown type name 'u8'
u8 data;
^~
../User/main.c:4:17: error: 'SIZE' undeclared (first use in this function)
u8 data;
^~~~
../User/main.c:4:17: note: each undeclared identifier is reported only once for each function it appears in
../User/main.c:6:9: warning: implicit declaration of function 'Delay_Init' [-Wimplicit-function-declaration]
Delay_Init();
^~~~~~~~~~
../User/main.c:7:9: warning: implicit declaration of function 'USART_Printf_Init' [-Wimplicit-function-declaration]
USART_Printf_Init(115200);
^~~~~~~~~~~~~~~~~
../User/main.c:8:9: warning: implicit declaration of function 'printf' [-Wimplicit-function-declaration]
printf("SystemClk:%d\r\n",SystemCoreClock);
^~~~~~
../User/main.c:8:9: warning: incompatible implicit declaration of built-in function 'printf'
../User/main.c:8:9: note: include '<stdio.h>' or provide a declaration of 'printf'
../User/main.c:1:1:
+#include <stdio.h>
../User/main.c:8:9:
printf("SystemClk:%d\r\n",SystemCoreClock);
^~~~~~
../User/main.c:8:35: error: 'SystemCoreClock' undeclared (first use in this function)
printf("SystemClk:%d\r\n",SystemCoreClock);
^~~~~~~~~~~~~~~
../User/main.c:10:9: warning: implicit declaration of function 'AT24CXX_Init' [-Wimplicit-function-declaration]
AT24CXX_Init();
^~~~~~~~~~~~
../User/main.c:13:9: warning: implicit declaration of function 'AT24CXX_Write' [-Wimplicit-function-declaration]
AT24CXX_Write(100,(u8*)TEXT_Buffer,SIZE);//写入数�
^~~~~~~~~~~~~
../User/main.c:13:28: error: 'u8' undeclared (first use in this function)
AT24CXX_Write(100,(u8*)TEXT_Buffer,SIZE);//写入数�
^~
../User/main.c:13:31: error: expected expression before ')' token
AT24CXX_Write(100,(u8*)TEXT_Buffer,SIZE);//写入数�
^
../User/main.c:16:9: warning: implicit declaration of function 'Delay_Ms' [-Wimplicit-function-declaration]
Delay_Ms(500);
^~~~~~~~
../User/main.c:19:9: warning: implicit declaration of function 'AT24CXX_Read' [-Wimplicit-function-declaration]
AT24CXX_Read(100,data,SIZE); //读�数�
^~~~~~~~~~~~
../User/main.c:4:12: warning: unused variable 'data' [-Wunused-variable]
u8 data;
^~~~
make: *** Error 1
10:04:19 Build Failed. 6 errors, 9 warnings. (took 665ms)</code></pre>
<p>是因为没有把这四行加到文件的开头:</p>
<pre>
<code> #include "debug.h"
#include "iic.h"
/* Global Variable */
const u8 TEXT_Buffer[]={"CH32V10x I2C TEST"};
/* Global define */
#define SIZE sizeof(TEXT_Buffer)</code></pre>
<p>编译通过:</p>
<p>下载也没有问题:</p>
<p></p>
<p>但是我的串口还是没有显示,可能跟我的串口工具有关,谁有合适的串口调试工具,希望能跟帖推荐。</p>
<p> </p>
<p>补充说明,论坛本身的粘贴功能不能用:</p>
<p></p>
<p> </p>
<p>再看下载这里的附件打开后的提示:</p>
<p></p>
<p>这个问题尚待解决。</p>
<p>芯片手册里没有说寄存器的地址吗?那怎么搞?</p>
<p>可能是厂家没有想到还会有人想要用汇编,但这个功能是必要地,因为这能体现出RISC-V 32个寄存器的特色,发挥出它的潜力。</p>
<p>比较疑惑,把示例代码直接拷贝粘贴,不能通过,这是什么原因?</p>
<p> </p>
Jacktang 发表于 2021-3-4 21:37
比较疑惑,把示例代码直接拷贝粘贴,不能通过,这是什么原因?
<p>可能是因为示例代码不是直接从调试通过的项目空间内粘贴过来地,也可能是因为示例资料不是出自一人之手。</p>
MianQi 发表于 2021-3-5 07:49
可能是因为示例代码不是直接从调试通过的项目空间内粘贴过来地,也可能是因为示例资料不是出自一人之手。 ...
<p>官网生态系统需要提升,客户体验感不好</p>
<p>你好,关于CH32V103具体资料,可参考CH32xRM这个手册,里面有对V103及其外设具体介绍,包括寄存器及其地址详细介绍。关于该手册,可在官网搜索CH32V103进行下载。此外,CH32V103支持RV32IMAC指令集组合,支持硬件乘法和除法。关于帖子中提出的移植报错问题,可能是由于开发环境字体及大小配置不同导致的,不影响正常使用。最后,关于编译报错问题,建议检查原程序编译是否报错,移植过程是否存在问题。</p>
<p>找到了,在这里:http://www.wch.cn/downloads/CH32xRM_PDF.html</p>
页:
[1]