开发环境搭建 (一) 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 分区#sd卡32G,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

相关文章

SpringBoot实现多环境配置文件切换

《SpringBoot实现多环境配置文件切换》这篇文章主要为大家详细介绍了如何使用SpringBoot实现多环境配置文件切换功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 示例代码结构2. pom文件3. application文件4. application-dev文

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见

Spring Cloud GateWay搭建全过程

《SpringCloudGateWay搭建全过程》:本文主要介绍SpringCloudGateWay搭建全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Spring Cloud GateWay搭建1.搭建注册中心1.1添加依赖1.2 配置文件及启动类1.3 测

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程

一文教你如何解决Python开发总是import出错的问题

《一文教你如何解决Python开发总是import出错的问题》经常朋友碰到Python开发的过程中import包报错的问题,所以本文将和大家介绍一下可编辑安装(EditableInstall)模式,可... 目录摘要1. 可编辑安装(Editable Install)模式到底在解决什么问题?2. 原理3.

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件

Gradle下如何搭建SpringCloud分布式环境

《Gradle下如何搭建SpringCloud分布式环境》:本文主要介绍Gradle下如何搭建SpringCloud分布式环境问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Gradle下搭建SpringCloud分布式环境1.idea配置好gradle2.创建一个空的gr

Linux搭建单机MySQL8.0.26版本的操作方法

《Linux搭建单机MySQL8.0.26版本的操作方法》:本文主要介绍Linux搭建单机MySQL8.0.26版本的操作方法,本文通过图文并茂的形式给大家讲解的非常详细,感兴趣的朋友一起看看吧... 目录概述环境信息数据库服务安装步骤下载前置依赖服务下载方式一:进入官网下载,并上传到宿主机中,适合离线环境