开发环境搭建 (一) OK6410A 开发环境 4 更改环境 OK

2024-05-27 16:08

本文主要是介绍开发环境搭建 (一) OK6410A 开发环境 4 更改环境 OK,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

从sd卡中 的 u-boot(1.1.6) 启动u-boot load sd卡中 第1个分区(被格式化为fat16)kernel(4.0),然后kernel 启动. // 如果要一个分区格式化为fat16,则这个分区的大小不能超过 2GB kernel 挂载 sd卡中的第2个分区(被格式化为ext3)为根文件系统,并执行 /linuxrc/linuxrc 作为 进程1 启动
  • u-boot 与 启动模式
uboot(1.1.6) 的配置 forlinx_sd_ram256_configuboot镜像通过 SD_Writer.exe 写入到sd卡中(写入步骤参考附录)sd卡分区1(0开始,32M),fat16,存储kernel ,  setenv bootcmd fatload mmc 0:1 0x50008000 zImage; bootm 0x50008000也就是说 uboot 有 fat16 文件系统及mmc驱动,且有 fatload 命令
  • kernel
	分区1(0开始,32M),fat16,存储kernel ,  setenv bootcmd fatload mmc 0:1 0x50008000 zImage; bootm 0x50008000也就是说 uboot 有 fat16 文件系统及mmc驱动,且有 fatload 命令uboot(1.1.6) 的配置 forlinx_nand_ram256_config分区2(32M开始,到末尾前2M),ext4 , 存储rootfs , setenv bootargs console=tty0 console=ttySAC0 root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait earlyprintk也就是说 kernel  有 ext4 文件系统及mmc驱动
  • rootfs
---------------------------以下为改动地方rootfs(ext3格式,未压缩7.8M,压缩后3.5M) ,参照https://github.com/lisider/busybox 的 ok6410-a 分支
rootfs 在 sd卡(sd卡共一个主分区,该主分区被格式化为ext3)中
rootfs 中 图形支持为 NULLrootfs 中的 /etc/init.d/rcS 中添加一句 mount /dev/mmcblk0p1  /boot (首先在根文件系统中创建/boot目录)需要命令
sudo fdisk -l /dev/sdb // 在ubuntu 插入sd卡,显示为 /dev/sdb,然后交互创建分区
sudo mkfs.ext3 /dev/sdb1 // 格式化该分区为 ext3 格式sudo mount -t ext3 /dev/sdb1  /mnt // 挂载文件系统sudo cp rootfs/*  /mnt  // 在文件系统中填充根文件系统所需内容.rootfs内容的创建需要参考 https://github.com/lisider/busybox 的 ok6410-a 分支sudo umount /mnt/ 卸载文件系统

附录

  • 烧写uboot到mmc
32G的sd卡,
根据 OK6410-A开发板LINUX3.0.1-2014-09用户手册.pdf 中的  "12-13 SD卡分区操作说明"
先烧写uboot 到 sd 卡成功
--------------------------------------也可以用以下脚本来烧写uboot到sd卡注意:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
本脚本适合 ok6410 ,且 u-boot 为 飞凌嵌入式发布的 u-boot-1.1.6
若 基于 ok6410 ,且 u-boot 为版本可尝试修改 BL2_SECTOR_NUMBER 为 1024可尝试修改 ENV_SECTOR_NUMBER
注意:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#!/bin/bash# TODO : 更改 sdd 为 你的sd卡设备名
# TODO : 分区时 请勿将 (3. 剩余未分区(62409166-62410752),用于u-boot)部分 分区
# usage : ./do.sh u-boot.binif [ $# -eq 0 ];thenecho usage : ./do.sh u-boot.binexit -2
fi############################### STEP0 分区#sd32G,62410752个sector
#    1. 512M 分区 (2048-1050623),用于zImage,fat16 // /dev/sdd1            2048     1050623      524288   83  Linux
#    2.      分区 (1050624-62409165) ,用于rootfs,ext3
#    3. 剩余未分区(62409166-62410752),用于u-boot# 62409166-62410752(最后一个sector) 排布# |________________|________|________|______________|______________|(END)                   
# BL2(512个sector)  ENV(32)	BL1(16)  signature(1)   Reserved(1025) ############################### STEP0.5 制作文件系统#sudo mkfs.vfat -F 16 /dev/sdd1
#sudo mkfs.ext3  /dev/sdd2############################### STEP1 u-bootboot=$1[ ! -e /dev/sdd ] && echo /dev/sdd not exist && exit -1BYTES_PRE_SECTOR=512let ALL_SECTOR_NUMBER=`sudo fdisk -l /dev/sdd | head -2 | tail -1 | awk -F " " '{print $7}'`
let Reserved_SECTOR_NUMBER=1025
let Signature_SECTOR_NUMBER=1
let BL1_SECTOR_NUMBER=16
let ENV_SECTOR_NUMBER=32
let BL2_SECTOR_NUMBER=512BL1_SECTOR_START_ADDR=`echo  ${ALL_SECTOR_NUMBER} - ${Reserved_SECTOR_NUMBER}- ${Signature_SECTOR_NUMBER} - ${BL1_SECTOR_NUMBER} | bc`
BL2_SECTOR_START_ADDR=`echo ${BL1_SECTOR_START_ADDR} - ${ENV_SECTOR_NUMBER} - ${BL2_SECTOR_NUMBER} | bc`echo ALL_SECTOR_NUMBER     : ${ALL_SECTOR_NUMBER}
echo BL1_SECTOR_START_ADDR : ${BL1_SECTOR_START_ADDR}
echo BL2_SECTOR_START_ADDR : ${BL2_SECTOR_START_ADDR}if [ -f ${boot} ];thenrm ./bl1.bin ./bl2.bin -fsudo dd if=./${boot} of=./bl1.bin bs=${BYTES_PRE_SECTOR} count=${BL1_SECTOR_NUMBER}cp ./${boot} ./bl2.bin
fisudo dd if=./bl1.bin of=/dev/sdd seek=${BL1_SECTOR_START_ADDR} bs=${BYTES_PRE_SECTOR} count=${BL1_SECTOR_NUMBER}
sudo dd if=./bl2.bin of=/dev/sdd seek=${BL2_SECTOR_START_ADDR} bs=${BYTES_PRE_SECTOR} count=${BL2_SECTOR_NUMBER}
  • 烧写 kernel 和 rootfs 到 mmc
目前sd卡为 一个分区(接近32G) + 一个未分区(接近20M)
然后将 用分区助手专业版 将 fat32分区分成两个分区 (512M + 31.5G)
然后把 512M 所在的分区 格式化为 fat16,并将 zImage 拷贝到这里
然后把 31.5G 所在的分区 格式化为 ext3 , 并将 rootfs文件拷贝到这里
  • 分区助手
链接:https://pan.baidu.com/s/1lgRcwzQd_xaWFGp9xYeiCQ 
提取码:nsp0

这篇关于开发环境搭建 (一) OK6410A 开发环境 4 更改环境 OK的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1007948

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

高并发环境中保持幂等性

在高并发环境中保持幂等性是一项重要的挑战。幂等性指的是无论操作执行多少次,其效果都是相同的。确保操作的幂等性可以避免重复执行带来的副作用。以下是一些保持幂等性的常用方法: 唯一标识符: 请求唯一标识:在每次请求中引入唯一标识符(如 UUID 或者生成的唯一 ID),在处理请求时,系统可以检查这个标识符是否已经处理过,如果是,则忽略重复请求。幂等键(Idempotency Key):客户端在每次