本帖最后由 aramy 于 2024-10-2 10:15 编辑
一、固定好屏幕
上次安装好环境后成功将板子变砖了。为了等打印的3D外壳,等待了几天。3D外壳到手后,发现一个问题,装上外壳后,Type-C口,基本被挡住了,虽然这个口仅仅是作为供电口使用的,但是被挡住了,上电很不方便了。不安装外壳,屏幕晃来晃去,很不安全,最后决定用双面胶,将屏幕粘在主板背后,完美解决问题。
2、重新安装开发环境
转眼到了小长假,在家没有linux环境啦!在win电脑上重新安装开发环境。全程参考以下文字,还是挺容易的。这里需要留意一下,之前自己在linux下克隆时使用的是这个地址
- git clone https://gitee.com/Ai-Thinker-Open/AiPi-Open-Kits.git
复制代码 重新搭建环境使用的是这个分支:
- git clone https://gitee.com/Ai-Thinker-Open/AiPi-Open-Kits.git -b master
复制代码 两个分支内容不一样,提供的例程也是不一样的。
- Windows环境推荐使用VScode + git + 编译工具 + 烧录工具,具体参考教程:https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=282&extra=page%3D1
复制代码 二、编译例程
1、选中"\AiPi-Open-Kits\AiPi-Eyes-Rx"这个例程。
2、这个例程是针对小安派的,但是小安派有R1、R2。两者还是有些不同的,小安派-Eyes-R1带外置ES8388音频芯片,支持两路音频输入输出。小安派-Eyes-R2采用内置CodeC,支持单路音频输入输出。手头事小安派R2,所以这里需要修改:
app_main.c中,将 #define DEF_USER_ES8388_EN (0) 由1设置为0。再将proj.conf对应位置修为为“1”
3、在终端里“make”编译代码,留意,这里要使用git终端,因为编译过程中,有“cp”操作,win自身的终端环境,这个拷贝命令不能识别,会报错,使用git终端,就能避免这个问题。
4、烧录。使用USB转TTL串口线,连接到板子,执行命令“make flash COMX=COM42”,这里串口号,按自己电脑实际情况修改。烧写前,按住“IO2”按键,再按一下“EN”键,让板子处于烧写状态。
烧写后,按一下“EN”复位键,熟悉的出厂界面就回来了。
三、性能测试
一时还想不出性能测试的方案,记忆中看很多大佬,都用lvgl例程中的动画来展示性能。看着那个动画,图像一跳一跳的,靠观察图像跳动的流畅度,和帧率来体现性能。当下这个例程正好有lvgl,那么就来段动画吧!
修改main.c代码,释放出“lv_demo_benchmark()”方法:
- int main(void)
- {
- board_init();
- printf("\r\n---BOARD:M61EVB-R%d VERSION:%s---\r\n", DEF_BOARD_INFO, DEF_BOARD_VERSION);
- //usb video init
- usbh_initialize();
- /* lvgl init */
- // lv_log_register_print_cb(lv_log_print_g_cb);
- lv_init();
- lv_port_disp_init();
- lv_port_indev_init();
- // test case
- lv_demo_benchmark();
- // lv_demo_stress();
- // lv_demo_widgets();
- // #if DEF_NXP_EN
- // setup_ui(&guider_ui);
- // events_init(&guider_ui);
- // #else
- // ui_init();
- // #endif
- // #if DEF_USER_ES8388_EN
- // /* i2s es8388 task start */
- // es8388_palyer_task();
- // #else
- // audio_play_task_init();
- // #endif
- xTaskCreate(user_task, (char *)"user_task", 2048, NULL, 3, NULL);
- xTaskCreate(button_process_task, (char *)"button_proc_task", button_PROCESS_STACK_SIZE, NULL, button_PROCESS_PRIORITY, &button_process_task_hd);
- /* freeRTOS start */
- vTaskStartScheduler();
- }
复制代码 编译、烧录。不知道如何上视频,智能拍几张照了。流畅度没得说,没有感觉到卡顿现象
四 、遇到的问题。
1、串口问题。看代码,有用printf方法输出,使用串口去读取输出内容,总是乱码。上网查了好久,结合代码,才明白这里的输出,使用的是2000000的波特率,真是很少见的值。
接下来就是想修改这个波特率的值,找到board.c,修改了控制台初始化时的波特率值。
再去修改了"AiPi-Open-Kits\AiPi-Cam\bl616vtb\config\bl_factory_params_IoTKitA_auto.dts"的两处波特率的值。
修改后,编译、烧录一点改变都没有,实在是不知道这个波特率,是那里控制的,求各位大佬指点。
2、最简单例程无法运行。
"AiPi-Open-Kits\Project_basic",有这么个例程,将main.c修改如下:
- int main(void)
- {
- while (1)
- {
- LOG_I("Hello world");
- printf("hello world!");
- bflb_mtimer_delay_ms(2000);
- }
- }
复制代码 就是一个简单的输出功能,但是编译、烧录后串口没有任何反应(无论是 11500还是2000000)。在网上找了许久,有说是加密问题,修改“AiPi-Open-Kits\Project_basic\flash_prog_cfg.ini”,添加“edata”内容。
- [cfg]
- # 0: no erase, 1:programmed section erase, 2: chip erase
- erase = 1
- # skip mode set first para is skip addr, second para is skip len, multi-segment region with ; separated
- skip_mode = 0x0, 0x0
- # 复位下载功能使能(Reset download function enable)
- # 0: not use isp mode, #1: isp mode
- boot2_isp_mode = 1
- # 配置boot2固件,否则无法使用复位烧录功能(Configure boot2 firmware, otherwise the reset burn function cannot be used)
- [boot2]
- filedir = ./build/build_out/boot2_*.bin
- address = 0x000000
- [edata]
- filedir = ./build/build_out/edata.bin
- address = 0x3e0000
- # 配置partition固件,这是必要的(Configuring partition firmware is necessary)
- [partition]
- filedir = ./build/build_out/partition*.bin
- address = 0xE000
- # 配置应用程序固件地址,需要新建工程时需要修改“Project_basic” 为新工程的名字,否则可能会导致烧录失败
- #(To configure the application firmware address, when creating a new project, it is necessary to modify "Project_Basic" to the name of the new project, otherwise it may cause burning failure)
- [FW]
- filedir = ./build/build_out/Project_basic_$(CHIPNAME).bin
- address = 0x10000
复制代码 问题依旧,任然是无任何输出,沮丧中~
|