Skip to main content

手机投屏

一 概述

基于开发板PD_AD102_APUS_V1.0 做的一款兼容安卓及苹果手机的投屏应用

二 配置及编译

配置文件ad102p_apus_v10_miracast_nand_quickstart_defconfig

2.1 spl配置

uboot配置

bhu@bhu-PC:~/ad100/build$ grep -nr "uboot" configs/ad102p_apus_v10_miracast_nand_quickstart_defconfig 
3:APP_uboot_toolchain_dir=../tools/toolchains/mips-xburst2-gcc1210-musl123
4:APP_uboot_dir=../bootloader/uboot-x2000
5:APP_uboot_config=ad102p_uImage_quickstart_miracast_sfc_nand #uboot配置

查找/Linux工程目录/bootloader/uboot-x2000/boards.cfg内的ad102p_uImage_quickstart_miracast_sfc_nand

ad102p_uImage_quickstart_miracast_sfc_nand    mips     xburst2    ad100_base       ingenic    ad100   ad100_base:AD102P_DDR,SPL_SFC_NAND,MTD_SFCNAND,SPL_OS_BOOT,SPL_PARAMS_FIXER,SHARE_MEM_KB=36,RMEM_KB=12724,VPU_MEM_KB=9728,QUICK_START,LPJ="11476992"

SHARE_MEM_KB是rtos要传给linux的lcd驱动相关信息大小

RMEM_KB是解码后需要的缓存大小

VPU_MEM_KB是解码需要的内存大小

2.2 rtos配置

配置文件ad102p_apus_v10_quick_start_miracast_nand_defconfig

lcd选择通用驱动, 通过flash分区单独烧录屏幕文件, 方便替换屏幕驱动

1

fb配置

2

linux继承rtos的fb配置, 存放驱动信息的SHARE_MEM在spl配置

3

U-Boot SPL 2013.07-00605-g2ca1fdcea (May 15 2026 - 16:28:05)
V1.0.0 <2024/06/25>
ERROR EPC 800188e4
CPA_CPAPCR:0300490d
CPM_CPMPCR:04b0490d
CPM_CPEPCR:0190510d
CPM_CPCCR:9a0b5410
DDR clk rate 900000000
DDR: W631GU6NG type is : DDR3
DDR_PAR of eFuse: 00000000 00000000
AD100 InnoPhy skew Settings...
457, VID=0x000000c8, PID=0x00000091
[0.000106] gpio: VDDIO_SD(PD00~PD05) = 3.3V
[0.000278] pwm clk rate 384000000
[0.000464] Supported Nand Flash, GD5F1GM7UE(c8:91)
[0.054020] ILCDTOOLS: type = 1, len = 80
[0.054161] ILCDTOOLS: type = 16, len = 108
[0.054307] ILCDTOOLS: type = 48, len = 660
[0.054454] ILCDTOOLS: type = 49, len = 72
[0.054596] ILCDTOOLS: type = 34, len = 116
[0.054744] ILCDTOOLS: type = 64, len = 983
[0.054901] Now use lcd: ili9881c_fw101, SOC:,
VERSION: VER:00:01, time=2026:03:09, 11:18:36
Driver Version = 00.02
[0.055370] share_mem left 0xbac bytes # SHARE_MEM剩余大小
[0.055520] vendor init...
[0.055638] get logo partition information fail!
[0.055799] now use default logo
[0.055926] cmdline vpu_mem 0x86a0a000 sz 9961472!
[0.056096] decoded image to 0x86b00000 to display!
[0.059593] jpegd decoded w 720 h 1280 act w 720 act h 1280
[0.165110] xburst2/soc-ad100/sfc_nand.c ingenic_sfcnand_read 381: ingenic_sfc_nand_read, ecc value = 4,

在/rtos工程目录/freertos/vendor/vendor.c内, 修改代码如下:

#include <stdio.h>
#include "example/driver/miracast_display_example.c"
void vendor_init(void *arg)
{
printf("vendor init...\n");
quick_boot_logo_and_load_kernel(arg);
}

编译rtos系统:

bhu@bhu-PC:~/rtos/freertos$ make ad102p_apus_v10_quick_start_miracast_nand_defconfig
bhu@bhu-PC:~/rtos/freertos$ make

2.3 linux 配置

lcd选择通用驱动, 通过flash分区单独烧录屏幕文件, 方便替换屏幕驱动

4

fb继承rtos配置

5

编译Linux系统:

bhu@bhu-PC:~/ad100/build$ make ad102p_apus_v10_miracast_nand_quickstart_defconfig
bhu@bhu-PC:~/ad100/build$ make

三 烧录

本开发板nand flash为128MB, 根据编译文件大小自行调节分区大小

6

分区表配置如下:

7

rtos分区烧录/rtos工程目录/freertos/zero.bin文件, kernel分区烧录/linux工程目录/build/output/uImage_split文件

lcd分区烧录/linux工程目录/demos/miracast/lcdbin/PD_AD102_APUS_V10/ili9881c_fw101_for_ad102p_apus_v10.blc

后续更改lcd, 可以通过/linux工程目录/tools/ilcdtool目录下的ilcdtool生成新的lcd驱动文件替换

8