瑞芯微开发板 烧写固件问题

自用rk3568-firefly-itx-3568q核心板+fpga+自研底板,因底板所需外设、功能与原厂有较大差异,故裁剪相应sdk,编译新的内核进行烧写。然而在更改设备树过程中kernel/drivers/media/i2c/fpga.c中的像素格式MEDIA_BUS_FMT_YUYV8_2X8误改成MEDIA_BUS_FMT_YUYV8_1X16,故导致开发板上电挂掉,需重新烧写原厂镜像启动板子,再通过ssh进行传输更改后的正确镜像。在烧写过程中遇到很多问题,差一点板子就变砖,简单总结一下,便于后期备用,有遇到相同情况的也可以尝试一下~

一、模式问题

需准备硬件:USB双公头一根(一端在PC机,另外一端在开发板的USB OTG口),12v电源

1.连接好电源和USB线后,电源灯亮,但是RKDevTool.exe显示“识别不到设备”,换了一根usb也没用,后来按了一下reset键,可以进maskrom模式(但是这种情况我几个月才遇到过一次,太偶然了)

2.MaskRom 模式是设备变砖的最后一条防线。强行进入 MaskRom 涉及硬件操作,有一定风险,因此仅在设备进入不了 Loader 模式的情况下,方可尝试 MaskRom 模式。进入 MaskRom 的原理是人为的把 EMMC 的数据脚与地线短接,系统会认为 EMMC 数据出错,从而清除 EMMC 数据。

连接好电源和USB线后,电源灯亮,但是RKDevTool.exe显示“识别不到设备”,用firefly官方提供的说法,将EMMC附近的D0和GND 测试点对接,官方是要用镊子短接,这边为了方便焊出两根线。

操作步骤如下:

  • 设备断开电源

  • 使用双公头USB数据线连接设备和电脑

  • 将两根线的头部接触

  • 设备插入电源

  • 稍候片刻,之后松开线。

此时就会进入maskrom模式

二、烧写问题

1.进入maskrom模式之后 ,首先尝试直接固件升级,但是大概率会显示“固件升级失败”,如果遇到这种情况,可以在RKDevTool.exe----->高级功能中下载对应的MiniLoaderAll.bin,而后选中读取存储列表,一般会显示“SPINOR(√)”,再“擦除所有”,最后点一下emmc,选中“切换存储”。便会显示如下界面,即从emmc烧写。

回到升级固件界面,选中对应的E:\3568资料\firefly_official\Ubuntu20.04\Public\kernel-5.10\ITX-3568Q_Ubuntu20.04-Xfce-r31113_v1.4.0a_240307\ITX-3568Q_Ubuntu20.04-Xfce-r31113_v1.4.0a_240307.img进行升级,片刻便会升级成功,如下

2.如果makrom模式烧写不成功,有可能是emmc空间已满,而系统镜像太大,烧不进去,这种情况可以选择直接下电,再上电,过30-60s后会自动识别为loader设备,此时进行烧写便可以了

3.如果loader模式也烧写不进去,可以选择擦除flash,再烧RK356x_NorFlash2eMMCLoader_20211209.img和系统镜像便可

4.当烧写进去显示

Bootdev(atags): mtd 2
GUID Partition Table Header signature is wrong: 0xA9425BF5A94153F3 != 0x5452415020494645
*** ERROR: Can't write GPT header ***
Backup GPT repair fail!
PartType: EFI
boot mode: recovery (misc)
FIT: No fdt blob
boot mode: None
Android 11.0, Build 2021.4, v2
Found DTB in boot part
Failed to read resource hdr
Failed to create resource list
Failed to load DTB
Failed to get kernel dtb, ret=-19
io-domain: OK
Model: Rockchip RK3568 Evaluation Board
rockchip_set_ethaddr: vendor_storage_write failed -5
rockchip_set_serialno: could not find efuse/otp device
no recovery key node
CLK: (sync kernel. arm: enter 816000 KHz, init 816000 KHz, kernel 0N/A)apll 816000 KHzdpll 780000 KHzgpll 1188000 KHzcpll 1000000 KHznpll 24000 KHzvpll 24000 KHzhpll 24000 KHzppll 100000 KHzarmclk 816000 KHzaclk_bus 150000 KHzpclk_bus 50000 KHzaclk_top_high 300000 KHzaclk_top_low 200000 KHzhclk_top 150000 KHzpclk_top 50000 KHzaclk_perimid 300000 KHzhclk_perimid 150000 KHzpclk_pmu 50000 KHz
Net:   No ethernet found.
Hit key to stop autoboot('CTRL+C'):  0
## Booting FIT Image FIT: No fit blob
FIT: No FIT image
ANDROID: reboot reason: "(none)"
optee api revision: 2.0
TEEC: blk_dread fail
TEEC: OpteeClientRkFsInit fail!
Can't read vboot flag
Android boot failed, error -1.
no mmc device at slot 1
no mmc device at slot 0
starting USB...
Bus dwc3@fcc00000: usb maximum-speed not found
Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
Bus dwc3@fd000000: usb maximum-speed not found
Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus dwc3@fcc00000 for devices... 1 USB Device(s) found
scanning bus dwc3@fd000000 for devices... cannot reset port 1!?
1 USB Device(s) foundscanning usb for storage devices... 0 Storage Device(s) foundDevice 0: unknown device
No ethernet found.
missing environment variable: pxeuuid
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm-rockchip
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default
No ethernet found.
Config file not found
No ethernet found.
No ethernet found.
=>

这种情况是因为nor flash不为空,nor flash有一部分不完整的固件,通常是直接把固件烧到nor flash引起的
解决方法:
此uboot命令行中直接把nor flash擦除

=> mtd erase nor0
Erasing 0x00000000 ... 0x01ffffff (8192 eraseblock(s))
=> reboot

再重启。

注:还有一种情况 是上电maskrom模式,而后按住recovery,再按一下reset,便可以进入loader模式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/62295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

photoblog解题过程

本题要求:通过sql注入,找到数据库中的账号密码,并成功登录。登录后利用文件上传,将一句话木马上传到数据库中,然后并对网站进行控制。 解题过程 1、通过在靶机中输入ifconfig,查到ip为192.168.80.153&…

QT获取tableview选中的行和列的值

查询数据库数据放入tableview(tableView_database)后 QSqlQueryModel* sql_model new QSqlQueryModel(this);sql_model->setQuery("select * from dxxxb_move_lot_tab");sql_model->setHeaderData(0, Qt::Horizontal, tr("id&quo…

「Mac玩转仓颉内测版46」小学奥数篇9 - 基础概率计算

本篇将通过 Python 和 Cangjie 双语实现基础概率的计算,帮助学生学习如何解决简单的概率问题,并培养逻辑推理和编程思维。 关键词 小学奥数Python Cangjie概率计算 一、题目描述 假设有一个袋子中有 5 个红球和 3 个蓝球,每次从袋子中随机…

Face2QR:可根据人脸图像生成二维码,还可以扫描,以后个人名片就这样用了!

今天给大家介绍的是一种专为生成个性化二维码而设计的新方法Face2QR,可以将美观、人脸识别和可扫描性完美地融合在一起。 下图展示为Face2QR 生成的面部图像(第一行)和二维码图像(第二行)。生成的二维码不仅忠实地保留…

电子商务人工智能指南 1/6 - 搜索、广告和发现

介绍 81% 的零售业高管表示, AI 至少在其组织中发挥了中等至完全的作用。然而,78% 的受访零售业高管表示,很难跟上不断发展的 AI 格局。 近年来,电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…

nextcloud云盘的部署

借鉴链接:https://blog.csdn.net/guigenyi/article/details/126692747 创建自定义 Docker 网络 docker network create nextcloud-network 创建mysql的账号密码都是root 并将其连接到自定义网络 docker run --name mysql-container --network nextcloud-network -e…

图(dfs与bfs)算法1

开辟新专题!不擅长的图它来了来了!(莫名激动 进度:10/100 另:没想到给自己挖了个坑,可以用dfs的基本上也可以用bfs,看来要双线并行了。 补:图算法是我近期得有30%的焦虑来源了&am…

一、测试工具LoadRunner Professional脚本编写-录制前设置

设置基于URL的脚本 原因:基于HTML的脚本会导致login接口不能正确录制 设置UTF-8 原因:不勾选此项会导致脚本中文变为乱码

Thonny IDE + MicroPython + ESP32 + GY-302 测量环境中的光照强度

GY-302是一款基于BH1750FVI光照强度传感器芯片的模块。该模块能够直接测量出环境中的光照强度,并将光照强度转换为数字信号输出。其具体参数如下表所示。 参数名称 参数特性 测量范围 0-65535 LX 测量精度 在环境光下误差小于20%,能够自动忽略50/60…

AJAX和XHR、fetch、axios的关系

AJAX中有两套原生的API,一个是XHR(XMLHttpRequest),一个是Fetch API axios是第三方库,在浏览器环境中使用的是XHR umi-request也是第三方库,在浏览器环境中使用的是Fetch 在 AJAX(Asynchronous JavaScript and XML&am…

openlayers地图缓存添加

//通过安装包localforage(npm install localforage)或https://cdnjs.cloudflare.com/ajax/libs/localforage/1.10.0/localforage.min.js tileCacheStore.js import localforage from localforage var tileCacheStorenull;// 从缓存中获取该瓦片 functio…

云轴科技ZStack出席中国电信国际EMCP平台香港发布会,持续推动海外合作

近日,以“云聚未来 翼起新篇”为主题的中国电信国际多云服务一站式平台(E-surfing Managed Cloud Platform,简称EMCP平台)新闻发布会在香港成功举办,标志着中国电信国际在云计算服务领域取得了又一重大进展。云轴科技…

2024.11.29——[HCTF 2018]WarmUp 1

拿到题&#xff0c;发现是一张图&#xff0c;查看源代码发现了被注释掉的提示 <!-- source.php--> step 1 在url传参看看这个文件&#xff0c;发现了这道题的源码 step 2 开始审计代码&#xff0c;分析关键函数 //mb_strpos($haystack,$needle,$offset,$encoding):int|…

brpc的二次封装以及brpc与etcd的联合

目的&#xff1a; 搭配etcd的注册中心管理能知道谁能提供什么服务&#xff0c;并用rpc进行服务调用 封装思想&#xff1a; 信道管理&#xff0c;将不同服务主机的通信信道管理起来 封装&#xff1a; 1.指定的信道管理类 一个服务通常会有多个节点&#xff0c;每个节点都会…

【提升效率】如何写好一份详细设计文档

版本日期修订人描述V1.02024/12/6nick huang创建文档 背景 CSDN在发起“如何做好一份技术文档”的活动。 想起我最近在写一份详细设计&#xff0c;有一些感受&#xff1a; 一份考虑较周全的“详细设计文档模板”能起到质量保底的作用。 当一名初级技术人员需要编写详细设计文…

电阻计RM3544、RM3545的使用

目录&#xff1a; 一、电阻计与PC通讯 1、硬件连接 2、RmLogger.exe的使用 二、RM3545测量35uΩ电阻 一、电阻计与PC通讯 1、硬件连接 可以设置USB或COM口(串口)连接PC&#xff0c;也可以设置为“打印”输出。 1&#xff09;使用USB连接PC 2&#xff09;使用串口连接PC …

Jenkins 的HTTP Request 插件为什么不能配置Basic认证了

本篇遇到的问题 还是因为Jenkins需要及其所在的OS需要升级&#xff0c;升级策略是在一台新服务器上安装和配置最新版本的Jenkins&#xff0c; 当前的最新版本是&#xff1a; 2.479.2 LTS。 如果需要这个版本的话可以在官方站点下载&#xff0c;也可以到如下地址下载&#xff1…

uniapp 封装自定义头部导航栏

封装原因 项目中有时候需要使用自定义的头部导航栏&#xff0c;原生的无法满足需求 参数 属性名描述示例title标题字符串&#xff1a;首页bgColor背景色字符串&#xff1a;#ffftype左侧的操作内容字符串&#xff1a;all&#xff0c;详细值请在下方查看 参数解释 type all…

docker学习笔记(五)--docker-compose

文章目录 常用命令docker-compose是什么yml配置指令详解versionservicesimagebuildcommandportsvolumesdepends_on docker-compose.yml文件编写 常用命令 命令说明docker-compose up启动所有docker-compose服务&#xff0c;通常加上-d选项&#xff0c;让其运行在后台docker-co…

Linux中inode

磁盘的空间管理 如何对磁盘空间进行管理&#xff1f; 假设在一块大小为500G的磁盘中&#xff0c;500*1024*1024524288000KB。在磁盘中&#xff0c;扇区是磁盘的基本单位&#xff08;一般大小为512byte&#xff09;&#xff0c;而文件系统访问磁盘的基本单位是4KB&#xff0c;因…