谷动谷力

标题: 中科蓝讯AB32VG1 bluetrum_sdk使用注意事项 [打印本页]

作者: sunsili    时间: 2021-11-27 22:27
标题: 中科蓝讯AB32VG1 bluetrum_sdk使用注意事项
中科蓝讯AB32VG1 bluetrum_sdk使用注意事项


注意事项

使用 master 的内核的话,BSP 要使用 1.0.9 之后的版本

编译报错

芯片有部分不开源的代码是以静态库提供的,静态库在软件包中,默认已勾选,直接运行 pkgs --update 即可

波特率默认为 1.5M,需要使用 Downloader 下载 .dcf 到芯片,需要编译后自动下载,需要在 Downloader 中的下载的下拉窗中选择 自动;目前暂时屏蔽 uart1 打印

使用 romfs 时,需要自己生成 romfs.c 进行替换,操作参考使用 RomFS

编译报错的时候,如果出现重复定义的报错,可能需要在 cconfig.h 中手动添加以下配置
  1. #define HAVE_SIGEVENT 1
  2. #define HAVE_SIGINFO 1
  3. #define HAVE_SIGVAL 1
复制代码


中断的问题

中断需要设置到 ram 的段中,比如

  1. RT_SECTION(".irq.example.str")
  2. static const char example_info[] = "example 0x%x";

  3. RT_SECTION(".irq.example")
  4. void example_isr(void)
  5. {
  6.     rt_kprintf(example_info, 11);
  7.     ...
  8. }
复制代码


不这么做的话,可能会报错,出现 overflow 的情况
打印的错误格式为 IRQ in Flash: 1 0 - %x %x,将后面的地址加上 0x10000000,也就是说,打印 IRQ in Flash: 1 0 - 1234 2345 的内核的话, 就可以去查询 0x10002345 这个地址的代码在什么函数中,然后将其放入 RAM 的段中,比如
查询在什么函数,可以查看 map 文件,也可以通过 addr2line -e rtthread.elf -f 0x10002345 完成

链接文件的问题

编译时提示某个段不够大的时候,需要自行修改段的大小
https://ab32vg1-example.readthedocs.io/zh/latest/rt-thread/link_file.html
想要更进一步了解链接文件的话可以看看下面的链接
https://home.cs.colorado.edu/~main/cs1300/doc/gnu/ld_3.html

scons 编译问题

SDK 依赖的库在软件包中,需要 pkgs --update

RTC

RTC 编译报错的话需要更新内核

串口

串口0暂时无法通过 pb2 打印
串口0默认使用的是单线串口,也就是 tx rx 一条线,单线串口在终端调试需要使用 downloader,在 downloader 里面就不会有回显







欢迎光临 谷动谷力 (http://bbs.sunsili.com/) Powered by Discuz! X3.2