【小安派R2应用开发】智能终端

[复制链接]
查看2266 | 回复12 | 2024-9-17 23:03:54 | 显示全部楼层 |阅读模式

本帖最后由 Lisaro 于 2024-11-20 23:56 编辑

本帖最后由 Lisaro 于 2024-10-29 13:41 编辑

本帖最后由 Lisaro 于 2024-9-17 23:03 编辑

【小安派R2开发】智能终端 11.20

一、开箱

开箱内容 :小安派x1;屏幕x1;CAM CV-031C50 x1;MIC x1;Speaker x2;转接线x2; 微信图片_20240917222001.jpg

二、环境搭建

1.简单外壳制作

由于小安派开发板与屏幕安装时会卡主Type-C口,且无支撑外壳,因此利用开发板包装制作一简单外壳。如下图所示。😄

微信图片_20240917222153.jpg

2.资料下载

小安派-Eyes-R2官方规格书:

[https://docs.ai-thinker.com/eyes-r]()

2.1源码下载

参考链接: https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=282&extra=page%3D1

gitee源码路径

  git clone https://gitee.com/Ai-Thinker-Open/AiPi-Open-Kits.git -b master
  git submodule init
  git submodule update

2.2 环境搭建

Linux 环境下安装工具链并添加到环境变量:

cd aithinker_Ai-M6X_SDK
. install.sh
. export.sh

编译AiPi-Eyes-Rx Demo:

cd AiPi-Eyes-Rx
make clean
make

烧录:

方式1 TTL-串口模块连接VM虚拟机,串口接开发板J4:RX-TX,TX-RX,GND-GND;长按IO2 同时按EN(RST)松开IO;

查看虚拟机是否有烧录串口 ttyACM0,烧录成功如下图所示🎉️

ls /dev/tty*
sudo chmod 777 /dev/ttyACM0 
make flash COMX=/dev/ttyACM0

1726584578179.png

image.png

方式二 USB-Type-C 烧录,UNKNOWN STATUS

无法进入烧录模式

3 修改demo 运行lv_demo_benchmark()

注释 GUI_GUIDER例程,运行lv_demo_benchmark 测试屏幕素质 image.png

NOT BAD ,4寸480*480方屏,流畅30帧。image.png

三、RISC-V 移植 LiteOS + sa服务(Doing)

1.下载Liteos_m源码

[https://gitee.com/openharmony/kernel_liteos_m]() 裁剪arch,仅保留risc-v部分。参考nuclei/gcc内容,适配BL616。

2.移植

2.1 CMakeList 组织内核代码编译

参考SDK中CMake框架: https://bl-mcu-sdk.readthedocs.io/zh-cn/latest/get_started/cmake.html

image.png

2.2 arch层riscv32/gcc 适配timer/interrupt

image.png

2.3 修改 los_dispatch.S

貌似仅需要改.section,不清楚是否有隐患

image.png

PS 这部分过于复杂,我直接贴一个移植好的git链接,有问题可以留言一起讨论一下 ❤️

3.测试

image.png

四、智能终端(Doing)

1. 应用框架

image.png

2. 实例

2.1 主页面

1730177711220.jpg

2.2 AOD 界面

image.png

五、求助

1.Eyes-R2 是否可以正常使用RTC功能,我按照例程,配置运行,输出一直是从0开始的。。。

期望做一个网络获取时间,赋值RTC,校准AOD时钟

#include "bflb_mtimer.h"
#include "bflb_rtc.h"

struct bflb_device_s *rtc;

extern void board_init(void);

int main(void)
{
    board_init();

    rtc = bflb_device_get_by_name("rtc");

    bflb_rtc_set_time(rtc, BFLB_RTC_SEC2TIME(1000));// 这里无论怎么设置,貌似读取时间只能从0开始?
    while (1) {
        printf("time:%lld\r\n", BFLB_RTC_TIME2SEC(bflb_rtc_get_time(rtc)));
        bflb_mtimer_delay_ms(2000);
    }
}

2.代码编译后的bin 1.3M 有没有好方法展示,各个section的大小。

3.PSRAM 空间是否可以配置8M? 修改链接脚本之后,还需要配置什么内容?

回复

使用道具 举报

爱笑 | 2024-9-18 09:27:40 | 显示全部楼层
只需发一篇主题帖即可哈
用心做好保姆工作
回复 支持 反对

使用道具 举报

一只呆头鹅 | 2024-9-18 09:46:34 | 显示全部楼层
厉害了
回复

使用道具 举报

iiv | 2024-9-18 18:44:20 | 显示全部楼层
很棒,大佬带俺玩!
回复 支持 反对

使用道具 举报

Lisaro | 2024-10-29 13:50:26 | 显示全部楼层
求一个技术支持,Ai-m61-32s,flash是4MB还是8MB? 看丝印和数据手册上是8MB,工程源码flash初始化和ld脚本写的是4MB。
回复 支持 反对

使用道具 举报

Lisaro | 2024-10-29 13:53:26 | 显示全部楼层
移植内核中,界面写的差不多了
回复 支持 反对

使用道具 举报

Lisaro | 2024-10-29 13:54:57 | 显示全部楼层
speaker+摄像头 一起跑 4MB感觉不够
回复 支持 反对

使用道具 举报

Ai-Thinker小泽 | 2024-10-29 14:06:18 | 显示全部楼层
Lisaro 发表于 2024-10-29 13:54
speaker+摄像头 一起跑 4MB感觉不够

你把4M的分区表改大就行,是8M
回复 支持 反对

使用道具 举报

Lisaro | 2024-10-29 18:18:31 | 显示全部楼层
Ai-Thinker小泽 发表于 2024-10-29 14:06
你把4M的分区表改大就行,是8M

有实例吗, 我改了ld 是不是也需要该初始化那块的代码,从哪里验证呢??
回复 支持 反对

使用道具 举报

Lisaro | 2024-11-3 20:20:05 | 显示全部楼层
汇编的地方跑飞了  , 是否支持单步调试?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则