九鼎Study210嵌入式开发板刷机笔记

2023-11-18

        本刷机笔记是基于S5PV210的九鼎Study210嵌入式开发板。

准备

        电脑通过串口线连接到开发板的UART2(靠近电源,与裸机不同)。usb线连接到开发板OTG端口。开发板接入电源,串口助手打开,开机,只要连接成功,无论开发板是否启动了uboot都可以收到板子串口打印的信息。

破坏uboot

        开发板出厂时,板载inand内烧录有uboot,开发板上电后会默认读取inand的程序执行,如果想从sd卡启动需要先破坏inand的程序,使其启动失败后,自动转向第二启动通道,即sd卡通道。

  • 方法

  1. 启动后在串口模式下停止在uboot下
  2. 输入:movi write u-boot 30000000
  • 原理

        内存(ddr)中30000000是空的利用movi指令将ddr中的内容写入到inand的uboot区域,原来的uboot就被覆盖了,就不能启动了。

fastboot刷机

uboot下载到SD卡

        fastboot是uboot内嵌的一个工具,是基于uboot运行。如果本身uboot能启动,可跳过本步骤。不行则使用“x210_Fusing_Tool”工具,将任意uboot下载到SD卡;

插入开发板开机,开机进入uboot。

fastboot驱动安装

        在串口终端输入fastboot,开发板进入fastboot模式。此时pc机会新增一个设备,但是这个设备驱动有问题,不能正常使用,可使用“驱动精灵”安装其驱动。即可连接成功。

windows下fastboot工具安装

        将fasboot工具解压到d盘,同时将要刷的文件uboot、kernel、rootfs放到fastboot LinuxQT文件夹;

系统刷写

        pc机打开“dos命令提示符”工具,

        输入 “ D: ”进入D盘,

        输入 “ dir ”查看d盘目录文件夹,

        输入 “ cd fastboot ”进入fastboot文件夹;

        输入 “ fastboot.exe ”运行fastboot工具;

        输入 “ fastboot devices”查看fastboot设备,确认已经连接成功;

        输入 “ fastboot flash bootloader LinuxQT/uboot.bin  ”烧写uboot;

        输入 “ fastboot flash kernel LinuxQT/kernel.bin ”烧写内核文件kernel;

       输入 “ fastboot flash system LinxQT/rootfs_qt4.ext3”烧写根文件系统os,注意有时文件的扩展名被隐藏,输入的时候不能忘记;

        刷机完成。重启。

设置本地启动kernel

        修改uboot的bootcmd参数:set bootcmd ‘movi read kernal 30008000; bootm 30008000’ 添加多条命令时要使用单引号‘’

DNW工具刷机

        dnw是三星推出的一个刷机工具,通过usb工具可直接将文件写入inand指定位置。该功能与单片机程序下载类型。

dnw驱动安装

  • pc机禁用数字签名。
  • 开发板设置usb启动,开机,pc机检测到无驱动的usb设备。
  • 在设备管理更新驱动,选择本地驱动文件“dnw_driver_win7-64”。
  • 打开客服端软件dnw.exe ,按下开发板电源按键,客户端检测到usb设备显示ok
  • 刷机。

下载usb驱动

        设置下载目标地址0xd0020010,下载(transmit)x210_usb.bin;

下载uboot

        设置下载目标地址0x23e00000,下载uboot.bin;

下载kernel

        设置下载目标地址0x30008000,下载kernel.bin

下载rootfs

tftp服务器刷机

        该种方法基于uboot工具和tftp服务器进行,简单的说就是将文件放在linux的tftp服务器上,在uboot下使用tftp指令将服务器的文件下载到开发板的内存RAM中,再使用movi指令将ram中的文件拷贝到板载inand的指定位置。

  1. 使用“x210_Fusing_Tool”工具,将任意uboot下载到SD卡;
  2. 搭建tftp服务器,并将uboot、kernel、bootft文件放在服务器中 /tftpboot。
  3. 修改开发板ip地址,ifconfig th0 192.168.10.62
  4. 开发板串口终端ping服务器192.168.10.51,测试连接正常。
  5. 下载到临时内存中,tftp 30000000 uboot
  6. 移动到inand,movi u-boot 30000000
  7. kernel下载并移动到inand的kernel段,movi kernel 30000000
  8. bootfts下载并移动到inand的system段,movi system 30000000

linux下编译源码后刷机

源码编译步骤

  • 命令:make distclean        //清除上次编译的bin文件。
  • 命令:make x210_sd_config   //调用脚本配置编译方法
  • 命令:make             //编译

下载

  • 进入 /uboot/sd_fusing目录   
  • 命令 make  clean        //清除上次编译的文件
  • 命令:make             //编译
  • 命令:./sd_fusing.h     //调用sd_fusing.h脚本将uboot.bin刷到SD卡

注意

查看脚本引用bin文件的名称,必须与uboot目录的的u-boot.bin文件名相同。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

九鼎Study210嵌入式开发板刷机笔记 的相关文章

  • 使用 ARM NEON 内在函数添加 alpha 和排列

    我正在开发一个 iOS 应用程序 需要相当快地将图像从 RGB gt BGRA 转换 如果可能的话 我想使用 NEON 内在函数 有没有比简单分配组件更快的方法 void neonPermuteRGBtoBGRA unsigned char
  • 在 ARM 处理器上执行存储在外部 SPI 闪存中的程序

    我有一个 ARM 处理器 能够与外部闪存芯片连接 写入芯片的是为 ARM 架构编译的程序 可供执行 我需要知道如何将这些数据从外部闪存获取到 ARM 处理器上以供执行 我可以提前运行某种复制例程 将数据复制到可执行内存空间吗 我想我可以 但
  • 小型 ARM 微控制器的 RTOS 内核之间的可量化差异 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有许多不同的 RTOS 可用于微控制器 我专门寻找支持 ARM Cortex M 处理器的 RTOS 另外 我对闭源解决方案不感兴趣 试图从网站
  • 手臂“版本”之间的差异? (仅限 ARMv7)

    基本上我想知道ARMv7l和ARMv7之间的区别hl 我有一个带有armv7l的arm处理器 并且有很多armv7的rpmhl 我完全不知道我必须搜索什么才能获得相关信息 这个 后缀 叫什么 还有其他类型吗 他们的做法有何不同 我假设它指示
  • 将 GCC 内联汇编与采用立即值的指令结合使用

    问题 我正在为 ARM Cortex M3 处理器开发定制操作系统 为了与我的内核交互 用户线程必须生成 SuperVisor Call SVC 指令 以前称为 SWI 用于软件中断 该指令在ARM ARM中的定义是 这意味着该指令需要即时
  • 在嵌入式设备上使用new或malloc引起的段错误[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • C 嵌入式应用程序中 time() 函数的问题

    我在用time 在 ARM 微控制器上 处理器一到达此函数就会重新启动 奇怪的是 当我处于调试模式时 代码运行得很好 但一旦我想将其应用到独立模式 我就会遇到重置 我是否忽略了什么 这个功能有替代品吗 代码部分是这样的 include
  • 可以使用Visual Studio 2012构建ARM桌面程序吗?

    我正在使用 Visual Studio 2012 beta 我的桌面 win32 程序在 ARM 架构中编译得很好 升级到 Visual Studio 2012 RC 后 编译器无法工作并出现以下错误 不支持为 ARM 平台编译桌面应用程序
  • 如何在 Android 设备上运行 VS Code [重复]

    这个问题在这里已经有答案了 我有 Galaxy Tab S6 它具有替代笔记本电脑的很酷的功能 例如连接鼠标和键盘 但不幸的是它运行 Android 操作系统 并且没有很多开发应用程序可用于 Android 所以我想是否有一个选项可以在至少
  • 交叉编译 Qt 4.7 时出现“非法指令”

    我已经在这个问题上苦苦挣扎了一个多星期了 但仍然找不到解决方案 我正在尝试为 ARM 设备交叉编译 Qt 4 7 嵌入式开源版本 构建过程本身可以顺利完成 但生成的二进制文件似乎包含处理器无法理解的指令 构建主机是 i386 上的 Debi
  • 使用 Android NDK 使用 -fsigned-char 进行构建安全吗?

    为了与其他平台保持一致 我需要使用signed char在我正在处理的一些本机代码中 但默认情况下在Android NDK上char类型是unsigned 我尝试明确使用signed char类型 但它生成太多警告differ in sig
  • 基于 Windows 8 ARM 的平板电脑上的 VB6

    随着 Windows 8 将支持 VB6 我的问题是 Microsoft 是否在任何地方表示 是或否 VB6 应用程序将在基于 ARM 的平板电脑上运行 如果没有 是否有任何 ARM 模拟器 以便我们可以在 Windows 8 ARM 平板
  • gdb 不会从外部架构读取核心文件

    我正在尝试在 Linux 桌面上读取 ARM 核心文件 但似乎无法找出我的核心文件 有什么方法可以指示 gdb 我的核心文件是什么类型吗 file daemon daemon ELF 32 bit LSB executable ARM ve
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • 上下文切换到安全模式(arm trustzone)的成本是多少

    我试图了解在arm中可信 安全 和非安全模式之间来回切换的成本 从非安全世界转移到安全世界时到底需要发生什么 我知道需要设置 ns 位 基于某些特殊指令 需要刷新和更新页表 刷新和更新处理器缓存 还有什么需要发生的吗 处理器缓存 它们是分段
  • .ko 文件是如何构建的

    我正在尝试将我自己的驱动程序移植到Beagle 板 xm arm cortex A8 在移植时我试图弄清楚如何 ko文件实际构建 在我们的Makefile我们只有一个命令来构建 o file 怎样是一个 ko文件已建立 使用Linux 2
  • 了解带有 pc 偏移的 Cortex-M 组件 LDR

    我正在查看这段 C 代码的反汇编代码 define GPIO PORTF DATA R volatile unsigned long 0x400253FC int main void Initialization code while 1
  • Linux 内核使用的设备树文件 (dtb) 可视化工具? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以图形化表示Linux内核中使用的硬件设备树的工具 我正在尝试了解特定 Arm 芯片组
  • 支持 ARM 上的 Windows 10 桌面应用程序 - MFC 和 COM 以及 OPOS 可以工作吗?

    我试图了解将在 x86 Windows 10 上运行的 C MFC 应用程序移植到具有 Qualcomm Snapdragon 处理器的 ARM Windows 10 设备的障碍 32位应用程序具有以下特点 MFC 与 C 用于用户界面 C
  • 在 ARM Cortex-M3 中使用 newlib 的 malloc

    我正在为 ARM Cortex M3 NXP 的 LCP17xx 创建代码 到目前为止我一直在使用静态内存 一切都运行良好 我尝试添加动态内存支持 但是一旦调用 malloc 系统就会卡住 我正在使用 gcc 为 Arm Bare Meta

随机推荐

  • 大数据主要应用于哪些行业,应用价值是什么?

    大数据无处不在 大数据应用于各个行业 包括金融 汽车 餐饮 电信 能源 体能和娱乐等在内的社会各行各业都已经融入了大数据的印迹 下面详细介绍一下大数据在各行各业的具体应用 制造业 利用工业大数据提升制造业水平 包括产品故障诊断与预测 分析工
  • - UnitBox An Advanced Object Detection Network,arxiv 16.08

    UnitBox An Advanced Object Detection Network arxiv 16 08 download 该论文提出了一种新的loss function IoU loss 这点比较有意思 也容易复现 论文分析了fa
  • Python之子类调用父类的两种方式

    第一种方式 直接在子类中调用父类名 调用方式如下 Vehicle init self name speed load power 调用父类的实例 Vehicle run self 调用父类的方法 下面给出具体样例 直接调用父类名 class
  • Tesseract-OCR4.0在Visual Studio2015中的编译及运行

    最近项目需要使用到OCR引擎 通过百度了解到Tesseract在这方面做的挺好的 于是便开始学习tesseract tesseract的github地址 https github com tesseract ocr tesseract 现在
  • 四种排序:选择,插入,冒泡,快速排序原理及其对应的时间、空间复杂度解析

    四种排序 选择 插入 冒泡 快速排序原理及其对应的时间空间复杂度 首先 在了解四种排序之前 让我们来了解一下什么是时间复杂度和空间复杂度 时间复杂度 算法的时间复杂度是一个函数 它定性描述该算法的运行时间 记做T n 直白的来说 就是指运行
  • SDIO 驱动

    原文地址 http blog csdn net fengyuyaoye1980 article details 6859343 SDIO卡 SDIO卡是在SD内存卡接口的基础上发展起来的接口 SDIO接口兼容以前的SD内存卡 并且可以连接S
  • 期货开户的时间和流程

    对于一些想要做期货投资的朋友来说 最基本的就是首先要进行期货开户 那就需要了解开户具体的流程和相关注意事项 一般来说了解清楚一下三点就没什么问题了 一 对开户者本人的要求 1 年满18周岁 2 中国公民 有中国公民身份证 境内储蓄卡 3 没
  • pywinauto和PyUserInput实现windows程序自动化

    一 pywinauto 官方文档 https pywinauto readthedocs io en latest code code html 首先需要下个spy lite 便于查看程序窗口属性 主要模块 pywinauto applic
  • 通过jdbc实现GBase 8s Row类型数据插入与查询

    Row数据类型 由一个或多个任意的数据类型组成 例如 创建一个r1 t的Row数据类型 具有integer类型的i和boolean类型的b字段 参考语句如下 CREATE ROW TYPE r1 t i int b boolean 本文章详
  • Flutter:bottomNavigationBar图标白色的解决办法

    Flutter中 如果底部的Item超过三个 我们就需要为BottomNavigationBar设置一个type属性为 BottomNavigationBarType fixed 否则图标就会变成白色 导致什么都看不见
  • 设计模式之【观察者模式】

    观察者模式动机与定义 模式动机 一个对象的状态改变会引起其他对象的状态改变 模式定义 观察者模式 Observer Pattern 定义 定义对象间一种一对多的依赖关系 使得每当一个对象状态发生改变时 其相关依赖对象皆得到通知并被自动更新
  • few-shot learning, zero-shot learning, one-shot learning,any-shot learning, C-way K-shot,Meta-learn

    更新 2021 7 6 元学习 meta learning 与机器学习 machine learning machie learning 通常是单任务学习 每个任务有训练集和测试集 在训练集上训练模型 在测试集上测试模型 meta lear
  • 年底裸辞准备面试,我用7张图画了ZK分布式锁!

    一 写在前面 之前写过一篇文章 都2022年了 出去面试连分布式锁的源码你都不会画 给大家说了一下Redisson这个开源框架是如何实现Redis分布式锁原理的 这篇文章再给大家聊一下ZooKeeper实现分布式锁的原理 同理 我是直接基于
  • Python opencv学习-12 2D直方图绘制

    绘制2D直方图 要转换到hsv色彩空间 import cv2 import numpy as np from matplotlib import pyplot as plt img cv2 imread image pic2 png hsv
  • C++多线程:创建线程

    C 中线程的创建一般是通过std thread类实现的 具体的实现方式有以下几种 1 使用函数名创建 void pcreat int a cout lt lt start lt lt a lt lt endl int main thread
  • advisor2002仿真参数界面grade options不弹出设定窗口

    针对这种问题 解决办法如下 第一步 找到advisor2002安装路径 然后找到 advisor2002 gui gradefig m文件和gradefig mat文件 把gradefig m文件名改为GradeFig m再把gradefi
  • AD账号导入--dsadd user

    Microsoft Windows AD账号全命令方式操作 导入一 AD 叫active directory 中文活动目录 其实是一个数据库 下面将介绍以数据库方式操作AD 对象二 AD对象操作有如下 1 新建一个对象 用 dsadd
  • windows如何查看最近打开的文件及文件夹?

    按住win R快捷键 输入recent 即可看到最近打开的文件
  • C语言的每日一题(一)

    前言 今天开始 我将开启我的每日一题之路 作者 一颗带有痣的毛 期待你的关注 一 三位数反转 题目 输入一个三位数 分离出它的百位 十位和个位 反转后输入 样例输入 127 样例输出 721 首先我们来分析一下这一题的思路 这一题的主要思路
  • 九鼎Study210嵌入式开发板刷机笔记

    本刷机笔记是基于S5PV210的九鼎Study210嵌入式开发板 准备 电脑通过串口线连接到开发板的UART2 靠近电源 与裸机不同 usb线连接到开发板OTG端口 开发板接入电源 串口助手打开 开机 只要连接成功 无论开发板是否启动了ub