【RV1103】SD卡和无线WiFi同时使用

4 篇文章 0 订阅
3 篇文章 0 订阅

追加

整理好的SDK,下载下来,改一下WiFi名和密码再编译就能用:
https://gitee.com/liefyuan2/luckfox-pico/tree/main-wifi/

  • 克隆源码:git clone -b main-wifi https://gitee.com/liefyuan2/luckfox-pico.git
  • 系统账号:root
  • 系统密码:luckfox
  • 为了支持这个必须做的修改:
    硬件基于luckfox pico,并在上面焊接了一颗spi nand flash[型号:winbond 25N01GVZEIG]
    飞线连接:
luckfox pico 序号芯片引脚WiFi引脚
6GPIO1_C5_dSDIO_D2
7GPIO1_C4_dSDIO_D3
12GPIO1_C0_dSDIO_D1
14GPIO1_C1_dSDIO_D0
15GPIO1_C2_dSDIO_CLK
16GPIO1_C3_dSDIO_CMD
GNDGND
VCC (3.3V)VCC
  • 在硬件连接OK的情况下,上电自动连接WiFi。

  • ssid和passwd在SDK中的修改位置:sdk/project/app/wifi_app/wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
update_config=1

network={
	ssid="your-ssid"
	psk="your ssid password"
	key_mgmt=WPA-PSK
}
  • 配置文件选择:./build.sh lunch 选择 2即2. BoardConfig_IPC/BoardConfig-SPI_NAND-NONE-RV1103_Luckfox_Pico_Liefyuan-IPC.mk

在这篇【RV1103】RTL8723bs (SD卡形状模块)驱动开发博文中完成了WiFi模块在SD卡槽的使用,GPIO里面有一个MMC1接口配置成SDIO模式用飞线连接WiFi模块(RTL8723BS),自带的SD卡槽就继续插SD卡。

SDK解压出来 2.9GB,全部编译完成 5.5GB,花费7分钟左右。

修改后的SDK:
链接:https://pan.baidu.com/s/1l8gCEbFynZoO3K8VNhCkCA?pwd=lief
提取码:lief
–来自百度网盘超级会员V5的分享

在这里插入图片描述

新建一个板级配置文件

我的目标
通过./build.sh lunch 来选择我的板子配置。

在目录sdk/project/cfg目录下新建一个xxxx.mk文件,文件名字格式如下:

BoardConfig-"启动介质"-"电源方案"-"硬件版本"-"应用场景".mk
----------------------------------------------------------------
0. BoardConfig_IPC/BoardConfig-EMMC-NONE-RV1103_Luckfox_Pico-IPC.mk
                             boot medium(启动介质): EMMC
                          power solution(电源方案): NONE
                        hardware version(硬件版本): RV1103_Luckfox_Pico
                              applicaton(应用场景): IPC
----------------------------------------------------------------

----------------------------------------------------------------
1. BoardConfig_IPC/BoardConfig-SPI_NAND-NONE-RV1103_Luckfox_Pico_Plus-IPC.mk
                             boot medium(启动介质): SPI_NAND
                          power solution(电源方案): NONE
                        hardware version(硬件版本): RV1103_Luckfox_Pico_Plus
                              applicaton(应用场景): IPC
----------------------------------------------------------------
  • BoardConfig-EMMC-NONE-RV1103_Luckfox_Pico-IPC.mk
  • BoardConfig-SPI_NAND-NONE-RV1103_Luckfox_Pico_Plus-IPC.mk

- 作为大区分
_作为字符串内部的区分

而我的目标是,在板子RV1103_Luckfox_Pico的基础上加入了,sd卡、sdio-wifi卡和spi-nand Flash,故我取了一个名字

  • BoardConfig-SPI_NAND-NONE-RV1103_Luckfox_Pico_Pro-SD_WIFI_IPC.mk

脚本解析出来是:

----------------------------------------------------------------
2. BoardConfig_IPC/BoardConfig-SPI_NAND-NONE-RV1103_Luckfox_Pico_Pro-SD_WIFI_IPC.mk
                             boot medium(启动介质): SPI_NAND
                          power solution(电源方案): NONE
                        hardware version(硬件版本): RV1103_Luckfox_Pico_Pro
                              applicaton(应用场景): SD_WIFI_IPC
----------------------------------------------------------------

它的主要内容

#!/bin/bash

# Target arch
export RK_ARCH=arm

# Target CHIP
export RK_CHIP=rv1106

# Target Toolchain Cross Compile
export RK_TOOLCHAIN_CROSS=arm-rockchip830-linux-uclibcgnueabihf

# Target boot medium: emmc/spi_nor/spi_nand
export RK_BOOT_MEDIUM=spi_nand

# Uboot defconfig
export RK_UBOOT_DEFCONFIG=rv1106_defconfig

# Uboot defconfig fragment
export RK_UBOOT_DEFCONFIG_FRAGMENT=rk-sfc.config

# Kernel defconfig
export RK_KERNEL_DEFCONFIG=luckfox_sd_wifi_rv1106_linux_defconfig

# Kernel dts
export RK_KERNEL_DTS=rv1103g-luckfox-pico-pro.dts
...

plus板设备树的继承关系:

rv1103.dtsi
rv1103g-luckfox-pico-plus.dts
rv1106-evb.dtsi
rv1103-luckfox-pico-plus-ipc.dtsi
rv1106.dtsi
rv1106-amp.dtsi
rv1106-amp.dtsi
dt-bindings/input/input.h
rv1106-pinctrl.dtsi

我的板设备树的继承关系:

rv1103.dtsi
rv1103g-luckfox-pico-pro.dts
rv1106-evb.dtsi
rv1103-luckfox-pico-pro-ipc.dtsi
rv1106.dtsi
rv1106-amp.dtsi
rv1106-amp.dtsi
dt-bindings/input/input.h
rv1106-pinctrl.dtsi

rv1103g-luckfox-pico-pro.dts相对于rv1103g-luckfox-pico-plus.dts的主要修改:

/dts-v1/;

#include "rv1103.dtsi"
#include "rv1106-evb.dtsi"
#include "rv1103-luckfox-pico-pro-ipc.dtsi"

/ {
	model = "Luckfox Pico Pro";
	compatible = "rockchip,rv1103g-38x38-ipc-v10", "rockchip,rv1103";
};
/**********GPIO**********/
&pinctrl {

};

&sfc {
	status = "okay";

	flash@0 {
		compatible = "spi-nand";
		reg = <0>;
		spi-max-frequency = <75000000>;
		spi-rx-bus-width = <4>;
		spi-tx-bus-width = <1>;
	};
};

/**********mmc interface for sd card map to sdmmc0 set for sd mode**********/
&sdmmc {
	max-frequency = <50000000>; // 设置 SD卡的运行频率
	no-sdio;           // 无 SDIO
	no-mmc;            // 无 eMMC
	bus-width = <4>;   // 此配置标识需要使用 SD 卡的线宽。SD 卡最大支持 4 线模式
	cap-mmc-highspeed; // 此配置为标识此卡槽支持 highspeed的SD卡。如果不配置表示不支持 highspeed 的 SD 卡。
	cap-sd-highspeed;  // 此配置为标识此卡槽支持 highspeed的SD卡。如果不配置表示不支持 highspeed 的 SD 卡。
	supports-sd;       // 标识此插槽为 SD 功能,为必须添加项。否则无法初始化 SD卡 外设。
	disable-wp;        // 关闭写保护
	pinctrl-names = "default";
	pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_bus4>; // rv1106-pinctrl.dtsi
	status = "okay";
};

/***********mmc interface for wifi map to sdmmc1 set for sdio mode**********/
&sdio {
	max-frequency = <50000000>; // 最大运行频率不超过 150Mhz; SDIO2.0 卡最大 50M,SDIO3.0 最大支持 150M
	bus-width = <4>;             // 4线数据模式
	cap-sd-highspeed;            // 此配置同 SD 卡功能,作为 SDIO 外设,也有区分是否为 highspeed 的 SDIO 外设。
	cap-sdio-irq;                // 此配置标识该 SDIO 外设(通常是 Wifi)是否支持 sdio 中断
	keep-power-in-suspend;       // 此配置表示是否支持睡眠不断电,请默认加入该选项。Wifi 一般都有深度唤醒的要求。
	non-removable;               // 此项表示该插槽为不可移动设备且此项为 SDIO 设备必须添加项。
	sd-uhs-sdr50;         
	no-1-8-v;
	supports-sdio;         // 标识此插槽为 SDIO 功能,为必须添加项。否则无法初始化 SDIO 外设。
	pinctrl-names = "default";
	pinctrl-0 = <&sdmmc1m1_clk &sdmmc1m1_cmd &sdmmc1m1_bus4>; // rv1106-pinctrl.dtsi
	status = "okay";
};

/**********ETH**********/
&gmac {
	status = "disabled";
};

kernel增加wlan0

  • 加载原有的defconfig:make ARCH=arm CROSS_COMPILE=arm-rockchip830-linux-uclibcgnueabihf- luckfox_sd_wifi_rv1106_linux_defconfig
  • 进入menuconfig:make ARCH=arm menuconfig
  • 保存修改后的配置为defconfig:make ARCH=arm savedefconfig
  • 替换原有的配置:cp defconfig ./arch/arm/configs/luckfox_sd_wifi_rv1106_linux_defconfig

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

引脚分析

在这里插入图片描述

sdk/sysdrv/source/kernel/arch/arm/boot/dts/rv1106-pinctrl.dtsi

...
sdmmc0 {
	/omit-if-no-ref/
	sdmmc0_bus4: sdmmc0-bus4 {
		rockchip,pins =
			/* sdmmc0_d0 */
			<3 RK_PA3 1 &pcfg_pull_up_drv_level_2>,
			/* sdmmc0_d1 */
			<3 RK_PA2 1 &pcfg_pull_up_drv_level_2>,
			/* sdmmc0_d2 */
			<3 RK_PA7 1 &pcfg_pull_up_drv_level_2>,
			/* sdmmc0_d3 */
			<3 RK_PA6 1 &pcfg_pull_up_drv_level_2>;
	};

	/omit-if-no-ref/
	sdmmc0_clk: sdmmc0-clk {
		rockchip,pins =
			/* sdmmc0_clk */
			<3 RK_PA4 1 &pcfg_pull_up_drv_level_2>;
	};

	/omit-if-no-ref/
	sdmmc0_cmd: sdmmc0-cmd {
		rockchip,pins =
			/* sdmmc0_cmd */
			<3 RK_PA5 1 &pcfg_pull_up_drv_level_2>;
	};

	/omit-if-no-ref/
	sdmmc0_det: sdmmc0-det {
		rockchip,pins =
			/* sdmmc0_det */
			<3 RK_PA1 1 &pcfg_pull_up>;
	};
};

sdmmc1 {
	...
	/omit-if-no-ref/
	sdmmc1m1_bus4: sdmmc1m1-bus4 {
		rockchip,pins =
			/* sdmmc1_d0_m1 */
			<1 RK_PC1 5 &pcfg_pull_up_drv_level_2>,
			/* sdmmc1_d1_m1 */
			<1 RK_PC0 5 &pcfg_pull_up_drv_level_2>,
			/* sdmmc1_d2_m1 */
			<1 RK_PC5 5 &pcfg_pull_up_drv_level_2>,
			/* sdmmc1_d3_m1 */
			<1 RK_PC4 5 &pcfg_pull_up_drv_level_2>;
	};

	/omit-if-no-ref/
	sdmmc1m1_clk: sdmmc1m1-clk {
		rockchip,pins =
			/* sdmmc1_clk_m1 */
			<1 RK_PC2 5 &pcfg_pull_up_drv_level_2>;
	};

	/omit-if-no-ref/
	sdmmc1m1_cmd: sdmmc1m1-cmd {
		rockchip,pins =
			/* sdmmc1_cmd_m1 */
			<1 RK_PC3 5 &pcfg_pull_up_drv_level_2>;
	};
};
...

omit-if-no-ref 的意思是:如果没有引用则省略
可以看出rv1106-pinctrl.dtsi文件里面的sdmmc0和sdmmc1节点的引脚可以对得上
sdmmc0有热拔插引脚
sdmmc1没有热拔插引脚

我实现的就是使用sdmmc1m1的引脚配置,使用的sdio的接口。

/***********mmc interface for wifi map to sdmmc1 set for sdio mode**********/
&sdio {
	max-frequency = <50000000>; // 最大运行频率不超过 150Mhz; SDIO2.0 卡最大 50M,SDIO3.0 最大支持 150M
	bus-width = <4>;             // 4线数据模式
	cap-sd-highspeed;            // 此配置同 SD 卡功能,作为 SDIO 外设,也有区分是否为 highspeed 的 SDIO 外设。
	cap-sdio-irq;                // 此配置标识该 SDIO 外设(通常是 Wifi)是否支持 sdio 中断
	keep-power-in-suspend;       // 此配置表示是否支持睡眠不断电,请默认加入该选项。Wifi 一般都有深度唤醒的要求。
	non-removable;               // 此项表示该插槽为不可移动设备且此项为 SDIO 设备必须添加项。
	sd-uhs-sdr50;         
	no-1-8-v;
	supports-sdio;         // 标识此插槽为 SDIO 功能,为必须添加项。否则无法初始化 SDIO 外设。
	pinctrl-names = "default";
	pinctrl-0 = <&sdmmc1m1_clk &sdmmc1m1_cmd &sdmmc1m1_bus4>; // rv1106-pinctrl.dtsi
	status = "okay";
};

遇到问题了


# cd /oem/usr/ko/
# ls
aes_generic.ko                rve.ko
gcm.ko                        insmod_ko.sh
os04a10.ko                    sc3336.ko
video_rkisp.ko                video_rkcif.ko
atbm603x_.ko                  sc530ai.ko
hichannel.ko                  ssv6x5x.ko
insmod_wifi.sh                ghash-generic.ko
libsha256.ko                  rga3.ko
sha256_generic.ko             cfg80211.ko
libarc4.ko                    rockit.ko
atbm6041_wifi_sdio.ko         mpp_vcodec.ko
ctr.ko                        release_version.txt
rknpu.ko                      sc4336.ko
8189fs.ko                     rk_dvbm.ko
hpmcu_wrap.bin                gf128mul.ko
8188fu.ko                     phy-rockchip-csi2-dphy.ko
mac80211.ko                   r8723bs.ko
ccm.ko                        phy-rockchip-csi2-dphy-hw.ko
libaes.ko                     cmac.ko
ipv6.ko
# insmod libarc4.ko
# insmod cfg80211.ko
[   51.692727] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   51.699323] cfg80211: Problem loading in-kernel X.509 certificate (-22)
[  #  51.700006] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[   51.700042] cfg80211: failed to load regulatory.db

# insmod mac80211.ko
# insmod r8723bs.ko
[   67.200376] r8723bs: module is from the staging directory, the quality is unknown, you have been warned.
[   67.211449] RTL8723BS: module init start
[   67.211478] RTL8723BS: rtl8723bs v4.3.5.5_12290.20140916_BTCOEX20140507-4E40
[   67.211488] RTL8723BS: rtl8723bs BT-Coex version = BTCOEX20140507-4E40
[   67.211905] pnetdev = 73c911f6
[   67.237067] RTL8723BS: rtw_ndev_init(wlan0)
[   67.245549] RTL8723BS: module init ret =0
#
# ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

usb0      Link encap:Ethernet  HWaddr 92:83:F0:2C:77:FA
          inet addr:172.32.0.93  Bcast:172.32.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:210 errors:0 dropped:136 overruns:0 frame:0
          TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:22643 (22.1 KiB)  TX bytes:86 (86.0 B)

# ifconfig -a
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

usb0      Link encap:Ethernet  HWaddr 92:83:F0:2C:77:FA
          inet addr:172.32.0.93  Bcast:172.32.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:210 errors:0 dropped:136 overruns:0 frame:0
          TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:22643 (22.1 KiB)  TX bytes:86 (86.0 B)

wlan0     Link encap:Ethernet  HWaddr 84:20:96:AB:33:12
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

#
#
# ifconfig wlan0 up
[   89.294991] rtl8723bs: acquire FW from file:rtlwifi/rtl8723bs_nic.bin
ifconfig: SIOCSIFFLAGS: Operation not permitted
# [   89.300854] ====>_BlockWrite 84 i:64
[   89.300876] ====>_WriteFW 169
[   89.301014] ====>_BlockWrite 84 i:0
[   89.301022] ====>_WriteFW 169

#
# wpa_supplicant -B -d -i wlan0 -c /etc/wpa_supplicant.conf
wpa_supplicant v2.6
random: Trying to read entropy from /dev/random
Successfully initialized wpa_supplicant
Initializing interface 'wlan0' conf '/etc/wpa_supplicant.conf' driver 'default' ctrl_interface 'N/A' bridge 'N/A'
Configuration file '/etc/wpa_supplicant.conf' -> '/etc/wpa_supplicant.conf'
Reading configuration file '/etc/wpa_supplicant.conf'
ctrl_interface='/var/run/wpa_supplicant'
ap_scan=1
update_config=1
Priority group 0
   id=0 ssid='MERCURY_2784'
nl80211: Supported cipher 00-0f-ac:1
nl80211: Supported cipher 00-0f-ac:5
nl80211: Supported cipher 00-0f-ac:2
nl80211: Supported cipher 00-0f-ac:4
nl80211: Supported cipher 00-0f-ac:6
nl80211: Using driver-based off-channel TX
nl80211: interface wlan0 in phy phy0
nl80211: Set mode ifindex 3 iftype 2 (STATION)
nl80211: Subscribe to mgmt frames with non-AP handle 0x90bd0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x90bd0 match=06
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x90bd0 match=0a07
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x90bd0 match=0a11
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x90bd0 match=1101
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x90bd0 match=1102
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x90bd0 match=0505
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x90bd0 match=0500
rfkill: Cannot open RFKILL control device
nl80211: RFKILL status not available
[  102.318143] rtl8723bs: acquire FW from file:rtlwifi/rtl8723bs_nic.bin
Could not set interface wlan0 flags (UP): Operation not permitted
nl80211: Could not set interface 'wlan0' UP
nl80211: deinit ifname=wlan0 disabled_11b_rates=0
nl80211: Remove monitor interface: refcount=0
netlink: Operstate: ifindex=3 linkmode=0 (kernel-control), operstate=6 (IF_OPER_UP)
nl80211: Set mode ifindex 3 iftype 2 (STATION)
nl80211: Unsubscribe mgmt frames handle 0x88818359 (mode change)
wlan0: Failed to initialize driver interface
Failed to add interface wlan0
wlan0: Cancelling scan request
wlan0: Cancelling authentication timeout
#
#
# ifconfig wlan0 up
[  218.745990] rtl8723bs: acquire FW from file:rtlwifi/rtl8723bs_nic.bin
ifconfig: SIOCSIFFLAGS: Operation not permitted
#

碰到鬼,硬件接触不良导致的!

# ./wifi.sh
[   63.911425] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   63.913288] cfg80211: Problem loading in-kernel X.509 certificate (-22)
[   63.916580] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[   63.916608] cfg80211: failed to load regulatory.db
[   64.013333] r8723bs: module is from the staging directory, the quality is unknown, you have been warned.
[   64.024423] RTL8723BS: module init start
[   64.024452] RTL8723BS: rtl8723bs v4.3.5.5_12290.20140916_BTCOEX20140507-4E40
[   64.024461] RTL8723BS: rtl8723bs BT-Coex version = BTCOEX20140507-4E40
[   64.024825] pnetdev = 3210999c
[   64.051486] RTL8723BS: rtw_ndev_init(wlan0)
[   64.060565] RTL8723BS: module init ret =0
#
#
#
# ifconfig wlan0 up
[   70.762122] rtl8723bs: acquire FW from file:rtlwifi/rtl8723bs_nic.bin
# mkdir -p /var/run/wpa_supplicant
#
#
# wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlan0
Successfully initialized wpa_supplicant
rfkill: Cannot open RFKILL control device
# [   85.901528] RTL8723BS: rtw_cmd_thread: DriverStopped(0) SurpriseRemoved(1) break at line 430


这也是硬件接触不良导致的!!!

正常的流程

ifconfig usb0 down

cd /oem/usr/ko
insmod libarc4.ko
insmod cfg80211.ko
insmod mac80211.ko
insmod r8723bs.ko

ifconfig wlan0 up

wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlan0

udhcpc -i wlan0

视频流的地址:rtsp://192.168.1.107/live/0
在这里插入图片描述
在这里插入图片描述
视频推流的时候工作电流约260mA。

在这里插入图片描述
如下,似乎自带了移动检测。


[video.c][rkipc_ivs_get_results]:OD flag:1
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:Detect movement
[video.c][rkipc_ivs_get_results]:OD flag:1
[video.c][rkipc_ivs_get_results]:OD flag:1
[video.c][rkipc_ivs_get_results]:OD flag:1
[video.c][rkipc_ivs_get_results]:OD flag:1
[video.c][rkipc_ivs_get_results]:OD flag:1
[video.c][rkipc_ivs_get_results]:OD flag:1
[video.c][rkipc_ivs_get_results]:OD flag:1

增加上电自动加载WiFi的功能

在板子的文件系统里面:

# cat /sys/bus/sdio/devices/*/uevent
DRIVER=rtl8723bs
SDIO_CLASS=07
SDIO_ID=024C:B723
SDIO_REVISION=0.0
MODALIAS=sdio:c07v024CdB723

根据这个在开发板文件系统里面的oem/usr/ko/insmod_wifi.sh脚本里面添加

#rtl8723bs
cat /sys/bus/sdio/devices/*/uevent | grep "024C:B723"
if [ $? -eq 0 ];then
	insmod  cfg80211.ko
	insmod  libarc4.ko
	insmod  mac80211.ko
	insmod  r8723bs.ko
fi

正常的应该是在SDK的原文件里面添加的:sdk/sysdrv/drv_ko/wifi/insmod_wifi.sh

#rtl8723bs
cat /sys/bus/sdio/devices/*/uevent | grep "024C:B723"
if [ $? -eq 0 ];then
	insmod  cfg80211.ko
	insmod  libarc4.ko
	insmod  mac80211.ko
	insmod  r8723bs.ko
fi

自动连接WiFi

需要在SDK的原文件里面添加:sdk/project/app/wifi_app/wpa_supplicant.conf自己要连接的WiFi名字和WiFi密码。

ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
update_config=1

network={
        ssid="Your-WiFi"
        psk="123456789"
        key_mgmt=WPA-PSK
}

最终体

在这里插入图片描述

# top
Mem: 31928K used, 2540K free, 144K shrd, 92K buff, 8348K cached
CPU:  42% usr  28% sys   0% nic  28% idle   0% io   0% irq   0% sirq
Load average: 10.72 7.90 3.71 1/102 1098
  PID  PPID USER     STAT   VSZ %VSZ %CPU COMMAND
  300     1 root     S    92620 269%  50% rkipc -a /oem/usr/share/iqfiles
 1098   432 root     R     1196   3%   7% top
  200     2 root     SW       0   0%   7% [vcodec_thread_0]
  187     1 root     S    16440  48%   0% /usr/bin/adbd
  320     1 root     S     5192  15%   0% rkwifi_server start
   67     1 root     S     1604   5%   0% /sbin/udevd -d
  475     1 root     S     1272   4%   0% wpa_supplicant -B -i wlan0 -c /data/wp
  432     1 root     S     1208   4%   0% -/bin/sh
    1     0 root     S     1196   3%   0% init
  375     2 root     SW       0   0%   0% [RTW_XMIT_THREAD]
  377     2 root     SW       0   0%   0% [RTWHALXT]
   49     2 root     IW       0   0%   0% [kworker/0:2-eve]
  198     2 root     SW       0   0%   0% [irq/44-ffa50000]
  196     2 root     SW       0   0%   0% [queue_work0]
   32     2 root     IW       0   0%   0% [kworker/0:1-eve]
  451     2 root     DW       0   0%   0% [venc]
 1095     2 root     IW       0   0%   0% [kworker/0:0-eve]
  197     2 root     SW       0   0%   0% [queue_work1]
    7     2 root     SW       0   0%   0% [ksoftirqd/0]
  225     2 root     DW       0   0%   0% [vmcu]

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: RV1103是一款低功耗、高性能的系统级芯片,它集成了多种功能,适用于多种应用场景。RV1103的数据手册(datasheet)提供了关于该芯片的详细技术规格和性能参数。 首先,RV1103采用了先进的28nm工艺制造,具有低功耗特性。它搭载了一颗强大的ARM Cortex-A7处理器,工作频率可高达1.2GHz,提供了出色的计算性能。同时,RV1103还集成了丰富的外设接口,如USB、SPI、I2C等,方便连接各种外部设备。 此外,RV1103还内置了丰富的多媒体处理器,支持高清视频解码和编码,以及音频处理功能。因此,它可以广泛应用于智能家居、智能监控、智能物联等领域,满足不同应用对于多媒体处理的要求。 RV1103还具备良好的图形处理能力,采用了高性能的GPU,支持OpenGL ES 2.0和OpenVG混合模式,提供流畅的图像渲染和显示效果。在人机交互领域,RV1103可以提供出色的图形界面显示和触摸屏控制体验。 此外,RV1103还配备了丰富的硬件安全功能,支持硬件加密和解密,保护数据的安全性。它还集成了可信任的执行环境(TEE),可用于安全的应用程序运行。 综上所述,RV1103是一款功能强大的系统级芯片,通过数据手册我们可以了解到它在处理器、多媒体、图形处理和安全方面的先进特性。它为各种应用提供了高效的解决方案,为智能设备的开发和应用带来了便利。 ### 回答2: RV1103是一款集成了Wi-Fi和蓝牙功能的芯片。该芯片具有高度集成的特点,内置了Wi-Fi和蓝牙的基带处理器、射频收发器、射频前端和功率放大器等关键组件。RV1103可广泛应用于物联网、智能家居、智能穿戴设备等领域。 在RV1103的数据手册中,我们可以找到有关该芯片的详细规格和功能描述。数据手册通常包含芯片的电气特性、工作频率范围、功耗、接口定义等重要信息,这些都是开发者在设计电路和软件时必须了解的。此外,数据手册还通常包含有关芯片的引脚布局图、应用电路示例和参考设计,这对于设计师来说非常有用。 通过仔细阅读和理解RV1103的数据手册,开发者可以更好地了解该芯片的功能和性能,从而更好地进行产品设计和开发。通过合理利用RV1103的功能,可以加快产品的上市时间,并提高其性能和可靠性。 总之,RV1103数据手册是开发者在设计和开发使用该芯片的产品时必不可少的参考资料。通过熟悉数据手册,开发者可以掌握该芯片的各项特性,从而更好地应用和发挥其优势。 ### 回答3: RV1103是一款集成了语音识别和语音合成功能的芯片。数据手册(Datasheet)是对该芯片技术参数和功能特性进行详细说明的文档。 在RV1103的数据手册中,首先会介绍芯片的主要特点和应用领域。RV1103采用先进的语音处理算法和高性能的音频处理芯片,具有良好的语音识别和语音合成质量。该芯片广泛应用在语音助手、智能家居、机器人、智能终端等领域。 在数据手册的技术参数部分,会详细描述RV1103的硬件规格。例如,芯片的工作电压、功耗、尺寸、引脚定义等。这些信息对于硬件设计和系统集成非常重要,能够帮助工程师进行合理的设计和应用。 数据手册还会介绍RV1103的软件接口和功能特性。RV1103支持多种接口协议,例如UART、I2C和SPI,方便与其他设备进行通信。芯片的语音识别和语音合成功能也会在数据手册中进行详细介绍,包括支持的多种语音指令、识别率、合成音质等。这些信息对于开发语音交互系统的工程师非常有用。 除了技术参数和功能特性,数据手册还会提供一些操作指南和建议。例如,如何正确使用RV1103进行语音识别和语音合成,如何配置芯片的寄存器和参数等。这些指南可以帮助工程师更好地使用RV1103,提高产品的性能和稳定性。 总之,RV1103的数据手册是一份非常重要的文档,它详细说明了这款芯片的技术参数、功能特性和操作指南,为工程师提供了使用和集成RV1103的重要参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值