中科蓝讯AB32VG1 bluetrum_sdk使用注意事项
注意事项
使用 master 的内核的话,BSP 要使用 1.0.9 之后的版本
编译报错
芯片有部分不开源的代码是以静态库提供的,静态库在软件包中,默认已勾选,直接运行 pkgs --update 即可
波特率默认为 1.5M,需要使用 Downloader 下载 .dcf 到芯片,需要编译后自动下载,需要在 Downloader 中的下载的下拉窗中选择 自动;目前暂时屏蔽 uart1 打印
使用 romfs 时,需要自己生成 romfs.c 进行替换,操作参考使用 RomFS
编译报错的时候,如果出现重复定义的报错,可能需要在 cconfig.h 中手动添加以下配置 - #define HAVE_SIGEVENT 1
- #define HAVE_SIGINFO 1
- #define HAVE_SIGVAL 1
复制代码
中断的问题
中断需要设置到 ram 的段中,比如
- RT_SECTION(".irq.example.str")
- static const char example_info[] = "example 0x%x";
- RT_SECTION(".irq.example")
- void example_isr(void)
- {
- rt_kprintf(example_info, 11);
- ...
- }
复制代码
不这么做的话,可能会报错,出现 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 完成
链接文件的问题
编译时提示某个段不够大的时候,需要自行修改段的大小 想要更进一步了解链接文件的话可以看看下面的链接
scons 编译问题
SDK 依赖的库在软件包中,需要 pkgs --update
RTC
RTC 编译报错的话需要更新内核
串口
串口0暂时无法通过 pb2 打印 串口0默认使用的是单线串口,也就是 tx rx 一条线,单线串口在终端调试需要使用 downloader,在 downloader 里面就不会有回显
|