想问下市面上有没有引出PCIe3x4接口的ARM或者RiscV的小型开发板,目前看到一些很多是1lane/2lane的,或者是PCIe2.0的,非常的难受。而同时很多开发板的M.2接口描述上根本不提版本和通道数,非常的坑。
目前知道的Firefly的ITX-3588J这样的是有PCIe3x4的接口的,但是那个板子也太大了点,我很叹息,就没有那种掌上开发板支持PCIe3x4或者满血NVMe的么,越小越好QAQ
PS:像OrangePi 5 Plus那种,描述是“用于NVMe SSD (PCIe 3.0 x4) 的 M.2 2280 插槽高达2,000 MB/s”,这个就很奇怪,因为同样RK3588的板子,PCIe3x4我测试过读写NVMe是可以达到满速3500MiBps+的。
你好,我想请问怎么读出是怎么读出JPEG格式的图片?我现在卡在了这一步上
https://github.com/espressif/esp32-camera
当时使用了这个驱动程序,也许会对你有帮助?
板子上TP1是UART1_RxD,TP2是UART1_TxD,启动的时候有输出信息
\ | /
- RT - Thread Operating System
/ | \ 3.1.0 build May 14 2022
2006 - 2018 Copyright by rt-thread team
OSK Rev: R-3.0.22
SDK Rev: 3.0.33
[FUNC]rwnxl_init
IP Rev: W4-3.0.33-P0
[bk]tx_txdesc_flush
[FUNC]calibration_main
rfcali_mode:0
tssi:b-125, g-115
xtal_cali:25
[FUNC]ps_init
[FUNC]func_init_extended OVER!!!
start_type:3
lwIP-2.0.2 initialized!
igmp_mac_filter add 224.0.0.1 01:00:5E:00:00:01
igmp_mac_filter add 224.0.0.1 01:00:5E:00:00:01
beken wlan hw init
drv_pm_init
[I/FAL] RT-Thread Flash Abstraction Layer (V0.4.0) initialize success.
msh />cmd 1:3
cmd 1:3
cmd 1:3
SD File System initialzation failed!
[I/FAL] The FAL MTD NOR device (filesystem) created successfully
LFS Filesystem initialized! filesystem ==> /flash0
bk_misc_check_start_type=3,gDcOrBattery=0
[ilnkp2p\src\IpcDevSys.c][3197],IpcSysInit:0----->gBatteryValue=0:3656
cVersion=1_11_2_34
cVersion=1_11_2_34
00000000: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000010: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000020: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000030: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000040: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000050: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000060: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000070: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
nilnkp2p\src\IpcDevCfg.c][ 78],keyFlashRead:3f4000 has no content,now read 1f4000
00000000: 7B 22 4D 41 43 5F 41 44 44 52 22 3A 22 63 30 30 {"MAC_ADDR":"c00
00000010: 31 30 32 30 30 30 30 31 31 22 2C 22 50 52 4F 44 102000011","PROD
00000020: 55 43 54 5F 4B 45 59 22 3A 22 46 54 59 41 32 31 UCT_KEY":"FTYA21
00000030: 37 37 33 32 50 47 46 5A 4D 22 2C 22 50 52 4F 44 7732PGFZM","PROD
00000040: 55 43 54 5F 53 45 43 52 45 54 22 3A 22 38 39 79 UCT_SECRET":"89y
00000050: 65 79 69 75 72 79 69 65 75 72 79 75 65 69 75 72 eyiuryieuryueiur
00000060: 22 2C 22 44 45 56 49 43 45 5F 4E 41 4D 45 22 3A ","DEVICE_NAME":
00000070: 22 55 4D 4D 48 56 44 22 2C 22 44 45 56 49 43 45 "UMMHVD","DEVICE
[ilnkp2p\src\IpcDevCfg.c][ 94],keyFlashRead:productName=huiehehiuhrr,p2pID=FTYA217732PGFZM,sec=UMMHVD,mac=c00102000011
[ilnkp2p\src\IpcDevCfg.c][ 421],IpcCfgInit:p2pID=FTYA217732PGFZM,sec=UMMHVD,mac=c00102000011
[ilnkp2p\src\IpcDevCfg.c][ 431],IpcCfgInit:lastShutdownTime---->1514766264,timeNow=1514764800[Mon Jan 1 00:00:00 2018
],rNow=[ilnkp2p\src\IpcDevCfg.c][1171],IpcCfgItemGet:failed--->EC_KEY_SLEEP
[ilnkp2p\src\IpcDevCfg.c][1188],IpcCfgItemGet:failed--->EC_KEY_SLEEP
sysmode=0,t=1053
[ilnkp2p\src\IpcDevSys.c][3445],_StartupWiFiInfChk:no wifi.ini file
[ilnkp2p\src\IpcDevSys.c][3722],_StartupFctChk:failed _StartupWiFiInfChk---->[-1]
[ilnkp2p\src\IpcDevSys.c][3240],IpcSysInit:_StartupFctChk--->-1,gFctChkOn=0
[ilnkp2p\src\IpcDevSys.c][ 543],IpcFuncSwitch:Net--->0:0
[ilnkp2p\src\IpcDevWlan.c][ 445],IpcWifiStop:mode=2,gWifiConnected=0
sending broadcast_deauth failed vif_entry == NULL
[ilnkp2p\src\IpcDevSys.c][3252],IpcSysInit:_StartupFctChk--->-1,gFctChkOn=0
[ilnkp2p\src\IpcDevSys.c][3052],normalRun:normalRun--->0,gFctChkOn=0
sysmode=1,t=1103
cmd 1:3
cmd 1:3
cmd 1:3
SD Card initialzation failed!-->ret=-1:0
[ilnkp2p\record\IpcRecIdx.c][1370],IpcPicIdxChk:TFcard not mounted[0]
[ilnkp2p\record\IpcRecIdx.c][1416],IpcRecIdxChk:TFcard not mounted[0]
[ilnkp2p\record\IpcRecIdx.c][1393],IpcSplIdxChk:TFcard not mounted[0]
video_transfer_main entry
video transfer send type:3, open type:1
2----open I2C2
chNmb=0,sensor=7,gUsedCam=abc09
lost
lost
lost
lost
lost
lost
lost
lost
lost
lost
lost
SP0A19_DEV init finish
0a19 addr=0x02,value=fe a6
camera_intfer_init counter=0, needTime=lost
0
camera_intfer_init=7:abc09,a5a50003-a5a50005
[ilnkp2p\avServer\iLnkAvServer.c][ 327],vidBitrateSet:lBitrate:hBitrate=[10000:12000],gVidCrntCho:gVidBufLen=0:40960d
cmd 1:3
[ilnkp2p\src\IpcCustomAV.c][1302],_VidFrameGetTh:pwr=0:3656,gVidCrntCho=[abc09:0:40960],size=0,fps=0,diff=1514766265
cmd 1:3
cmd 1:3
SD Card initialzation failed!-->ret=-1:0
[ilnkp2p\src\IpcDevSys.c][ 543],IpcFuncSwitch:Net--->0:0
[ilnkp2p\src\IpcDevWlan.c][ 417],IpcWifiStart:
mode=2,ssid=FTYA217732PGFZM,psk=12345678
[ilnkp2p\src\IpcDevWlan.c][ 103],ap_setup:no flash configuration, use default
[ilnkp2p\src\IpcDevWlan.c][ 112],ap_setup:no flash configuration, use default
[ilnkp2p\src\IpcDevWlan.c][ 130],ap_setup:chann=7,mac=c8:47:8c:78:5e:6a
[ilnkp2p\src\IpcDevWlan.c][ 152],ap_setup:set ip info: 192.168.1.1,255.255.255.0,192.168.1.1,c8:47:8c:78:5e:6a
[ilnkp2p\src\IpcDevWlan.c][ 154],ap_setup:ssid:FTYA217732PGFZM key:
Soft_AP_start
[saap]MM_RESET_REQ
[bk]tx_txdesc_flush
[saap]ME_CONFIG_REQ
[saap]ME_CHAN_CONFIG_REQ
[saap]MM_START_REQ
[csa]csa_in_progress[0:0]-clear
mm_add_if_req_handler:0
hapd_intf_add_vif,type:3, s:0, id:0
apm start with vif:0
------beacon_int_set:100 TU
set_active param 0
[msg]APM_STOP_CFM
update_ongoing_1_bcn_update
mm_set_vif_state_req_handler
vif_idx:0, ch_idx:0, bcmc_idx:2
update_ongoing_1_bcn_update
uap_ip_start
configuring interface uap (with Static IP)
using static ip...
please use rtthread dncp start server
[DHCP] dhcpd_start: ap
[DHCP] ip_start: [192.168.1.100]
[DHCP] ip_end: [192.168.1.254]
[DHCP] dhcp_server_start(): starting new DHCP server
[DHCP] dhcp_server_start(): starting DHCP server
def netif is no ap's netif, sending boardcast or no-subnet ip packets may failed
[ilnkp2p\src\IpcDevWlan.c][ 435],IpcWifiStart:IpcWifiStart=208
[ilnkp2p\src\IpcDevSys.c][3137],normalRun:IpcSysInit=0,t=2345
start watch dog
rt_hw_wdg_start time=10000 threshold=500
[ilnkp2p\src\IpcDevWlan.c][ 322],IpcWifiStatusGet:bk_wlan_ap_is_up:wifiMode=2,ret=1
[ilnkp2p\libipc\IpcDevAPI.c][ 47],_IpcInit:info[688]:
p2pID=FTYA217732PGFZM
svrStr=EKTDROREHXHURHRKRMCXEEKPRNKKUZPNLXNYNOHYAO[ilnkp2p\libipc\IpcDevAPI.c][ 50],_IpcInit:info---P2pInit()
[ilnkp2p\libipc\IpcDevP2P.c][ 296],P2pInit:info!!! svrStr=EKTDROREHXHURHRKRMCXEEKPRNKKUZPNLXNYNOHYAONRNUNWRJSQGZNXGUNTIHKIJYEH[ilnkp2p\libp2p\XQP2P_API.c][ 41],XQP2P_InitializeExt:svrStr=EKTDROREHXHURHRKRMCXEEKPRNKKUZPNLXNYNOHYAONRNUNWRJSQGZNXGUNTIHKI[ilnkp2p\libp2p\Xq_p2pEntry.c][1472],P2P_Init:pktSize=1032
ExtPktBlockSize=1072
P2PIDSize=20
ojtLicense=EKTDROREHXHURHRK[ilnkp2p\libp2p\OsEncryptBase.c][ 643],XqCodeTableInit:codeTable=1352
[ilnkp2p\libp2p\Xq_p2pEntry.c][ 144],GlobalParamInit:
NodeName=UMMHVD
[ilnkp2p\libp2p\Xq_p2pEntry.c][ 158],GlobalParamInit:
_g_params:
sessionNmb=2
channelNmb=6
bufferSize=64
svrStr=EKTDROREHXHUR[ilnkp2p\libp2p\Xq_p2pEntry.c][1487],P2P_Init:GlobalParams_Init=0,st_globalParams=420,_g_pVerifyParam=524
[ilnkp2p\libp2p\Xq_p2pEntry.c][1508],P2P_Init:mpSize=96----P2PPktPool_Get
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[0].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[1].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[2].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[3].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[4].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[5].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[0].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[1].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[2].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[3].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[4].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[5].maxNmb=64
closesocket: invalid s=0
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[0].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[1].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[2].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[3].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[4].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[5].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[0].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[1].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[2].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[3].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[4].maxNmb=64
[ilnkp2p\libp2p\Xq_p2pDataRW.c][ 47],DataRW_Init:init chlLst[5].maxNmb=64
closesocket: invalid s=0
[ilnkp2p\libp2p\Xq_p2pEntry.c][1309],SDevMonThStart:superDevThread sucessfully!!
[ilnkp2p\libp2p\Xq_p2pEntry.c][1641],P2P_Init:--ok--_g_bInitialized=1,_g_session==16
[ilnkp2p\libipc\IpcDevP2P.c][ 305],P2pInit:info!!! P2pInit=0
[ilnkp2p\libipc\IpcDevAPI.c][ 59],_IpcInit:info---IpcSession_Init()
[ilnkp2p\src\Ink[ilnkp2p\libp2p\Xq_p2pEntry.c][ 664],BCstListenProc:error[-1]-BrdCstSktFDPut
Pq_p2pEntry.c][ 664],BCstListenProc:error[-1]-BrdCstSktFDPu[ilnkp2p\src\InkP2pModule.c][ 33],_getCbArray:CB_AV_CTRL:cbAvCtrlFun
[ilnkp2p\src\InkP2pModule.c][ 38],_getCbArray:CB_STREAM_DATA_GET:cbAvStreamDataGet
[ilnkp2p\src\InkP2pModule.c][ 43],_getCbArray:CB_STREAM_DATA_PUT:cbAvStreamDataPut
[ilnkp2p\src\InkP2pModule.c][ 48],_getCbArray:CB_NETWORK_CTRL:cbNetCtrlFun
[ilnkp2p\src\InkP2pModule.c][ 53],_getCbArray:CB_SD_CTRL:cbSdCtrlFun
[ilnkp2p\src\InkP2pModule.c][ 59],_getCbArray:CB_EVENT_NOTIFY:cbEvenNoteFun
[ilnkp2p\src\InkP2pModule.c][ 64],_getCbArray:CB_DATARCV:cbPassThough
[ilnkp2p\src\InkP2pModule.c][ 66],_getCbArray:get callback over, ret=8
[ilnkp2p\libipc\IpcDevCallback.c][ 77],cb_CallRegist:cmd nmb=8
[ilnkp2p\libipc\IpcDevCallback.c][ 81],cb_CallRegist:register gCbArray[0].cmdID=a000
[ilnkp2p\libipc\IpcDevCallback.c][ 81],cb_CallRegist:register gCbArray[1].cmdID=a002
[ilnkp2p\libipc\IpcDevCallback.c][ 81],cb_CallRegist:register gCbArray[2].cmdID=a003
[ilnkp2p\libipc\IpcDevCallback.c][ 81],cb_CallRegist:register gCbArray[3].cmdID=a004
[ilnkp2p\libipc\IpcDevCallback.c][ 81],cb_CallRegist:register gCbArray[4[ilnkp2p\libp2p\Xq_p2pEntry.c][ 664],BCstListenProc:error[-1]-BrdCstSktFDPut
]ut
D=a001
[ilnkp2p\libipc\IpcDevCallback.c][ 81],cb_CallRegist:register gCbArray[5].cmdID=a005
[ilnkp2p\libipc\IpcDevCallback.c][ 81],cb_CallRegist:register gCbArray[6].cmdID=a006
[ilnkp2p\libipc\IpcDevCallback.c][ 81],cb_CallRegist:register gCbArray[7].cmdID=a007
[ilnkp2p\libipc\IpcDevAPI.c][ 173],IpcLibStart:info---Using external ringbuf,check CB ifexisted
[ilnkp2p\libipc\IpcDevSession.c][ 997],LstnThStart:bInet[0]-->_ListenThread
[ilnkp2p\src\InkP2pModule.c][ 164],IpcP2pStart:Success[0]--IlnkModP2pStart
[ilnkp2p\src\InkP2pModule.c][ 172],IpcP2pStart:IpcP2pStart=0
[ilnkp2p\src\IpcDevSys.c][1610],sdPlugChk:sd-cd value=1,gSdPlugIn=-1
[ilnkp2p\libipc\IpcDevSession.c][ 671],_ListenThread:_ListenThread-----start
[ilnkp2p\libipc\IpcDevSession.c][ 689],_ListenThread:bInet=0-->listening by id:FTYA217732PGFZM,devName=UMMHVD
[ilnkp2p\libp2p\XQP2P_API.c][ 86],XQP2P_Lis[ilnkp2p\libipc\IpcDevSession.c][ 856],CmdRecvTh:CmdRecvThread start...
[E/NTP]: ERROR no such host
cur_time is 0.
tvTh:CmdRecvThread start...
Code=UMMHVD
[ilnkp2p\libp2p\Xq_p2pEntry.c][ 554],BrdCstSktGet:error[XqSckIfValid=-1],pSession->sktFd=4
[ilnkp2p\libp2p\Xq_p2pEntry.c][1155],SessionGet:session id is FTYA-217732-PGFZM
gParam.bFlagServerHello==0
[ilnkp2p\libp2p\Xq_p2pSession.c][ 380],pSessionStart:sock=5,localAddr is 0.0.0.0:62510,udpPort4=62510
[ilnkp2p\src\IpcCustomAV.c][1302],_VidFrameGetTh:pwr=0:3597,gVidCrntCho=[abc09:0:40960],size=11884,fps=7,diff=3
[ilnkp2p\src\IpcCustomAV.c][1302],_VidFrameGetTh:pwr=0:3597,gVidCrntCho=[abc09:0:40960],size=10984,fps=8,diff=3
[ilnkp2p\src\IpcCustomAV.c][1302],_VidFrameGetTh:pwr=0:3565,gVidCrntCho=[abc09:0:40960],size=12296,fps=8,diff=3
[ilnkp2p\src\IpcCustomAV.c][1302],_VidFrameGetTh:pwr=0:3540,gVidCrntCho=[abc09:0:40960],size=11724,fps=8,diff=3
IpcShutdownDST for bForced 0-->t: 14888
---enter deep sleep :wake up with gpio 0~31 ps: 0x80 0x80
这是出厂开机上电的时候打印的信息,Wi-Fi还没配置。
后面连上之后画质也就那样,从TF卡里看录像文件貌似640*960,推流码率180左右,帧率最高15FPS……
顶楼链接里的beyond软件不是绿色版吧?下载后解压,得到两个.exe文件,第一个是安装程序。
nia~这个是我用的绿色版的,我把那个文件夹里的内容打包了,希望没有遗漏什么
如果用了一段时间之后提示“这个授权密钥已被吊销”,参考:https://whycan.com/t_1881.html
出于学习的目的尝试过,下面是笔记,不知道支不支持Markdown格式,就...懒得改了。(´-ω-`)
当前使用的规划方案如下:
| 使用到的功能 | 开发板引脚 | W5500引脚 |
| :----------: | :--------: | :-------: |
| SPI1_CS(0) | PA0 | SCS |
| SPI1_MOSI | PA1 | MOSI |
| SPI1_CLK | PA2 | SCLK |
| SPI1_MISO | PA3 | MISO |
| GPIO | PE11 | INT |
> W5500驱动程序中,使用寄存器操作方式进行复位操作,因此无需连接RST引脚。
在内核源码进行如下配置(方便起见,可将以下内容全部编译进内核):
- Device Drivers -> Network device support 。选择“Ethernet driver support”项。
- Device Drivers -> Network device support -> Ethernet driver support 。选择“WIZnet devices”项。
- Device Drivers -> Network device support -> Ethernet driver support -> WIZnet W5100 Ethernet support 。选择“WIZnet W5100 Ethernet support”项及其子项“WIZnet W5100/W5200/W5500 Ethernet support for SPI mode”。
而后修改 ./arch/arm/boot/dts/suniv.dtsi ,在 /soc/pio 节点下仿照SPI0增加SPI1节点。
```c
spi1_pins_a: spi1_pins_a {
pins = "PA0", "PA1", "PA2", "PA3";
function = "spi1";
};
```
修改 ./arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts ,增加W5500连接描述:
```c
&spi1 {
pinctrl-names = "default";
pinctrl-0 = <&spi1_pins_a>;
status = "okay";
eth0: eth0@0{
compatible = "w5500";
reg = <0>;
interrupt-parent = <&pio>;
interrupts = <4 11 IRQ_TYPE_EDGE_FALLING>; /* PE11 */
gpios = <&pio 4 11 GPIO_ACTIVE_HIGH>;
spi-max-frequency = <12000000>;
status = "okay";
};
};
```
为了使用中断控制,需在该文件头部增加:
```c
#include <bt-bindings/interrupt-controller/irq.h>
```
若出现无法找到头文件的错误,手动复制头文件内容至此即可。
修改完成后编译并重新下载烧录zImage镜像和设备树即可。
ping延迟<3ms;iperf3测速稳定在4.6Mbits/sec左右。
全志客户服务平台注册的时候会把账号和密码明文发送到短信,还是第一次见到,有点不安全呐
wu150 说:为什么资料要藏着不公开
这里是招聘贴,资料开放的事情,我再开一个帖子给大家骂(划掉)
我们现在也在逐步推进资料开放的事情了,敬请大家期待,为表决心,请大家看这个:
https://r329.docs.allwinnertech.com/zh_CN/latest/
狼狼 说:我遇到了一些问题,我是新手从这块矿卡开始学习ZYNQ的,Hello World工程调试的步骤进行的很顺利,但在固化进NAND的时候,程序卡死在“initialization done, programing the memory”,我试了两块板子都是这样,还有一块可以擦除,但校验的时候显示“Blank Check Operation unsuccessful. The part is not blank.”
请问是我的矿卡坏掉了吗?
https://whycan.com/files/members/4483/QQ截图20201030105923.pngVIVADO什么版本,已知2019.2版本有bug,nand烧写失败,可以试试2018.3或者2020.1亲测都可以
其次Nand烧写的时候要在JTAG模式
谢谢,我后来找到原因了,是我太粗心,启动电阻部分设置的有问题,导致NAND数据线电平异常。而且2018.3的FSBL中的uboot通过console输出信息帮了我不少忙。
狼狼 说:我遇到了一些问题,我是新手从这块矿卡开始学习ZYNQ的,Hello World工程调试的步骤进行的很顺利,但在固化进NAND的时候,程序卡死在“initialization done, programing the memory”,我试了两块板子都是这样,还有一块可以擦除,但校验的时候显示“Blank Check Operation unsuccessful. The part is not blank.”
请问是我的矿卡坏掉了吗?
https://whycan.com/files/members/4483/QQ截图20201030105923.png我感觉还是擦除没弄好吧?
也许是和NAND通信不正常吧...SMC时序我对着手册和网上的经验贴看、改了几遍,按说应该是不存在问题的...吧。莫不成NAND有坏块导致校验失败?后面又换了块矿卡,卡死在“Flash programming initialization failed.”这个地方了。。。我太难了2333
今晚又试了一下,把CPU频率从160M改到240,Wi-Fi和OV2640都不是瓶颈。通过把图片质量降低发现传输帧率依然不变,推测主要问题还是在处理上。
解决的方法是把OV2640的连续采集打开,就是驱动中的fb_count改成大于1的数值,这样驱动会创建一个队列,存放传感器连续采集的图像。通过这种方式,传输帧率可以达到11~12FPS了。
但是这种方式的帧率不是狠稳定,而且我设置队列长10的时候它会超出这个采集值。推测连续采集的时候没有进行帧率控制。我会再看代码确认是不是这样。
另一个问题是,这种连续采集可能不适合当前的需求,需求是,每发送一个采集指令才会回传一张图像。一来一回达到每秒10次以上,队列的方式显然不现实,因为采集指令是随机的。
不不不,你搞错了,编码芯片根本就不能解决这个问题。因为ov2640输出的就是jpeg根本不需要你编码。就算你加个编码器也没啥用呀,除非你有啥编码器可以把图片压缩的更小。如果按照你目前的情况来说一张200w像素的jpeg大概是80k的话每秒10帧就是800KB/s也就是你的WIFI传输速度不能低于800KB/s。要么你选择一款无线wifi能达到这个传输速度的。要么你想办法把esp32的网络传输速度达到800KB/s。只要你的网络传输能达到这个速度你的功能就能可以完成。
啊哦,可能是我表达不严谨了。我是这样想的,在关闭Wi-Fi的情况下,只获取数据,比较稳定的速度才达到11帧,就算网络速度达到要求,LWIP协议栈内send的数据拷贝操作(我猜的,TCP发送从数据源到缓冲区应该会存在完全拷贝)也会将处理速度拉低。也就是说,恐怕使用了RTOS之后的性能(或者CPU对任务的资源分配?)也是达不到要求的。
我说的编码芯片的意思是,换用诸如海思+200W sensor+Wi-Fi芯片的方案这样子,(因为我看海思SDK中不直接支持OV2640,觉得直接用它支持的比较方便)。
狼狼 说:各位大佬们好,问题见标,我有一个预研的项目需要使用ESP32-CAM从OV2640获取1600*1200的JPEG数据并通过Wi-Fi(TCP传出)。ESP32使用IDF提供的FreeRTOS,要求传输的帧率达到10FPS。
经过查找,OV2640的UXGA分辨率下最大帧率是15FPS,也就是说在传感器侧是能达到这个速度的。
我做了两个测试:
(1)RTOS启动到app_main()之后,开启一个1s定时器做标定输出,while(1)不停获取图像并仅打印数据长度(也就是不对图像数据做拷贝等操作),获取的速度能达到约11~12FPS。
(2)启动Wi-Fi,通过TCP连接到电脑的网口助手,在TCP连接的状态下,获取数据并使用LWIP的send函数发送裸JPEG数据到PC,帧率只有3FPS左右;将JPEG质量从原来的12(数据量80K/张左右)降低到30(数据量50K/张左右),帧率达到4~5FPS。请问是我哪里的操作导致了数据处理速度下降么?还是ESP32(432MHz)的性能无法达到这个需求?
又或者...有没有哪些可供优化的方法呢?感谢大家~嗷呜!!
就你这里获取15fps来说的话大概你是有66.6ms可以用来传输,这样的话可以保证不丢帧。所以这个问题就是确定你自己的esp32传输速度了。这个芯片我没玩过,但是你可以单独测试传输的速度。我看网上说这个芯片实测的传输速度也就几百K左右,所以按照你80K*3=240KB/s可能也就差不多就这样子。我最近刚测试的ov2640的800x600的jpeg在室内开灯大概是15K一帧的大小。如果没有必须要求1600x1200的话你可以将输出大小设置为800x600这样15k*10fps也就是150KB。这样你的速度就可以达到了。
感谢您的回答。但是很可惜项目是要求200W的JPEG图像的。那按照您的意思,如果网络速度达到要求,10FPS的获取和传输还是有可能达到的对吗?那看起来就是我们事先对这款芯片的Wi-Fi传输速度预估的有太多偏差了。
我们的主要参数要求是这样的:
(1)200W JPEG
(2)Wi-Fi(TCP)传输
(3)整机功耗小于700mW@3.3V
现在如果ESP32的方案要重做,可能还是会考虑上专门的编码芯片,只是那样的话功耗就会成为一个问题。好伤。
各位大佬们好,问题见标,我有一个预研的项目需要使用ESP32-CAM从OV2640获取1600*1200的JPEG数据并通过Wi-Fi(TCP传出)。ESP32使用IDF提供的FreeRTOS,要求传输的帧率达到10FPS。
经过查找,OV2640的UXGA分辨率下最大帧率是15FPS,也就是说在传感器侧是能达到这个速度的。
我做了两个测试:
(1)RTOS启动到app_main()之后,开启一个1s定时器做标定输出,while(1)不停获取图像并仅打印数据长度(也就是不对图像数据做拷贝等操作),获取的速度能达到约11~12FPS。
(2)启动Wi-Fi,通过TCP连接到电脑的网口助手,在TCP连接的状态下,获取数据并使用LWIP的send函数发送裸JPEG数据到PC,帧率只有3FPS左右;将JPEG质量从原来的12(数据量80K/张左右)降低到30(数据量50K/张左右),帧率达到4~5FPS。
请问是我哪里的操作导致了数据处理速度下降么?还是ESP32(432MHz)的性能无法达到这个需求?
又或者...有没有哪些可供优化的方法呢?
感谢大家~嗷呜!!
把LED和IRCUT操作写到sh里,操作会方便一些。
先运行Pins_Init.sh初始化相关引脚方向和复用,然后再执行控制sh。
红外接收和Zigbee没写(买的不带CC2530的版本)
pincontrol.zip
根据群里提供的引脚信息,已经可以独立控制这些器件啦~!
红色LED:GPIO8_0
--引脚复用
himm 0x200f0100 0x01
--GPIO8_0-方向输出
himm 0x201C0400 0x01
--GPIO8_0-输出高电平=灭
himm 0x201C0004 0x01
--GPIO8_0-输出低电平=亮
himm 0x201C0004 0x0
绿色LED:GPIO7_4
--引脚复用
himm 0x200f00f0 0x01
--GPIO7_4-方向输出
himm 0x201B0400 0x10
--GPIO7_4-输出高电平=灭
himm 0x201B0040 0x10
--GPIO7_4-输出低电平=亮
himm 0x201B0040 0x0
红外LED:GPIO7_7
--引脚复用
himm 0x200f00fc 0x01
--GPIO7_7-方向输出
himm 0x201B0400 0x80
--GPIO7_7-输出高电平=亮
himm 0x201B0200 0x80
--GPIO7_7-输出低电平=灭
himm 0x201B0200 0x0
红外接收管:GPIO7_6
--引脚复用
himm 0x200f00f8 0x1
--GPIO7_6-方向输入
himm 0x201B0400 0x00
周围光线亮时读值为1,周围光线暗(夜晚)时读值为0,可以通过写1查看当前寄存器值(该操作不影响输入电平):
himm 0x201B0100 0x40
IRCUT经IC(AE1511)受控于GPIO0_1
+---------AE1511----------+
| Input | Output |
+---------+-----------------+
| FBC | OUT1 | OUT2 |
+-------+--------+--------+
| 上升沿 | 脉冲 | 低电平 |--->开启IRCUT
+-------+--------+--------+
| 下降沿 | 低电平 | 脉冲 |--->关闭IRCUT
+-------+--------+--------+
--引脚复用
himm 0x200f0074 0x0
--驱动能力4mA(可以不用)
himm 0x200f0884 0x30
--GPIO0_1-方向输出
himm 0x20140400 0x02
--GPIO0_1-输出高电平
himm 0x20140008 0x02
--GPIO0_1-输出低电平
himm 0x20140008 0x0
按照提示找的,觉得有点道理,看看有没有帮助?
https://blog.csdn.net/zhengqijun_/article/details/71908896
Hi3516EV200我这还有一份稍微新一点的Hi3516EV200R001C01SPC011
链接: https://pan.baidu.com/s/1SizdIlWOmkS3LYnnmLD7JQ 提取码: ka1j
这个看起来很不错哦,mark啦~!
先说下问题来源,我之前在海思的开发板上学习过,按照官方建议,在海思SDK中编译出的kernel镜像是uImage格式的,对这个格式我去稍微了解了一下,是在zImage前加了一些uboot的头。在生成uImage的时候,海思官方给的镜像可以自动将dtb压缩进uImage使得烧录的时候最少只需要uboot、kernel、rootfs三个分区。
最近上手f1c100s,看到的大部分资料都是采用dtb+zImage的模式来做的。这个模式我在ZYNQ的开发中见到过,(多说一嘴我见到的ZYNQ有UBOOT+dtb+uImage形式也有petalinux生成的UBOOT+uImage(with dtb)这样的格式),所以理解起来没有什么妨碍,但还是不明白这样安排启动模式的原因是什么。
当我按照网上的方法配置内核的时候,却没有得到包含dtb的zImage镜像,它们依然是分离的。我只确认了这里的配置:
我知道的:
1.dtb和uImage分离可以重用内核;
2.有命令可以手动将dtb整合进zImage,即将dtb添加到zImage文件结尾。
我的问题:
1.f1c100s官方uboot支持uImage启动吗?
2.应该如何配置使得官方的kernel生成包含dtb的zImage镜像?
真诚求问,不胜感激!
我经常反思,我学习嵌入式是真的因为喜欢吗?因为“喜欢”,可以抵过万难。有遥不可及的前辈,在我这个年纪做出辉煌的成绩,也有实验室的后辈,C语言刚刚入门。我比别人强吗?不会。我继续努力下去会比别人强吗?总有比我更强的。百年之后不会有人记得我,我花费日夜写的代码终有一天被时间丢弃,在某个不知名的硬盘中哭泣。
我欢笑过、哭泣过的事情,不会有人同我回忆。“每个人怜惜自己还不够,哪来的空闲为他人在意?”
所以这样看,我工作是为了活着,我选择这个方向是因为我只会这个方向,只能这么活着......
不!
======以下抒情,原本不想的,写着写着来感觉了======
我在这里,不只是我选择了它,也是因为它选择了我。万千人有万千人的辉煌,唯嵌入式独属于我。如果什么都不做,衣食无忧,每日游山玩水,你会更开心吗?你会吗?我不会。如果赋予你无限的选择空间,随意去做想做的:音乐家、画家、明星、律师...你会比现在更开心吗?你会吗?我不会。
因为我喜欢嵌入式,我是真心喜欢它,愿意和它到老。
需要在乱作一团的飞线中调试吗?我喜欢!要开十几个窗口同时完成3项任务吗?我喜欢!要紧跟技术更新,一直学习吗?没事,我喜欢!
义务教育充斥我活到现在的前半生,那时我没有选择,我学的东西是别人让我学的;但是后半生我要做什么,我已经想好了。既然想好了,那就去做。
“你真是疯子!”
“总有一天你会学不动的!”
是啊,这样的话我不反对,我现在也许已经很累了,但是又有何妨呢?累能让我不去喜欢吗。倒一杯水走到窗前,繁星点缀的夜色一片苍茫。又是一个通宵呢,我却有幸和我喜欢的事物一起迎来晨光。
转头看看桌上开发板上的LED在闪烁,我知道那是指示数据在传输,和人的心跳一样有节奏,快有时慢有时。几年、几十年,逐渐深入的了解,如同相恋一般。
有一天我去散步,经过我曾经上学的学校。校园里的孩子们在欢闹,满操场追逐,一阵恍惚,不经意间想到:如果再重来一次,我还会选择嵌入式的路吗?
把手插进兜中,不知被什么扎了一下,拿出一看,一颗前些天掉进去的三极管,嘛,这就是现实。
不要多想那些无谓的可能性,充满概率的世界有何意义?每种结果对人都是唯一。
学习的意义?因为喜欢,对于我,就这么简单。
【声明:本回答不杠,仅适用本人。】
这个太强了,
不用开发板了
拆个摄像头完事
逆向果然有意思。另外学过Hi3518,这比f1c100s容易上手多了。
这是 Hi3518EV200R001C01SPC040 SDK:
链接: https://pan.baidu.com/s/17KQv6kHNEwzWBjGi36HcZg
提取码:7zuw