海思linux开发相关

-----知识点
-----flash?nand flash?nor flash?

FLASH 存储器又称为闪存,它也是可重复擦写的存储器。
NOR Flash的NOR为NOT OR(或非)之意,NAND Flash的NAND则为NOT AND(与非)之意,而该名称的命名是与两种FLAHS的架构有关的。
NOR 与 NAND 特性的差别,主要是由于其内部“地址/数据线”是否分开导致的。

参考

-----emmc?

eMMC是一种嵌入式、非易失的存储系统,它主要由闪存、闪存控制器和eMMC协议接口等组成,以BGA的形式封装在一起。
eMMC内部的闪存一般都属于Nand Flash

参考

-----MTD

MTD(Memory Technology Device)子系统是Linux内核的一个组成部分,它为各种类型的闪存和EEPROM设备提供了一个统一的接口。
MTD 子系统为 Linux 内核提供了与非易失性存储设备交互的标准接口,使得开发者可以更方便地实现对这些设备的管理、操作和访问。.
用途:系统更新,数据存储,设备测试

/dev/mtd*

/dev/mtd设备文件是MTD子系统的核心组成部分。这些文件代表了系统中的MTD设备,通常用于访问小块的、页对齐的内存区域。每个/dev/mtd设备文件都有一个数字后缀,例如/dev/mtd0、/dev/mtd1等,这些数字代表了设备在系统中的索引。
用途:文件系统挂载,数据分区,系统恢复

/dev/mtdblock*

与/dev/mtd不同,/dev/mtdblock设备文件提供了对MTD设备的块设备接口。这意味着它们可以被挂载为文件系统,并以块为单位进行读写操作。/dev/mtdblock设备文件的命名方式与/dev/mtd类似,也使用数字后缀来区分不同的设备。

当你在一个嵌入式系统中使用 NOR Flash 存储器时,可能会看到 /dev/mtd0/dev/mtdblock0/dev/mtd0ro 这几个设备文件,它们对应的都是 NOR Flash 存储器中的同一个物理空间或逻辑分区。其中 /dev/mtd0 和 /dev/mtdblock0 提供了不同的读写方式,/dev/mtd0ro 则是只读的。这些设备文件允许用户以不同的方式与 NOR Flash 存储器进行交互和访问,例如可以进行烧写、读取和执行代码等操作。

进入系统后发送cat /proc/mtd
在这里插入图片描述
size是本mtd分区的最大字节数空间 ,erasesize是本分区的最小擦除字节数空间,读出来的信息显示这个erasesize就是一个nand block
0x00020000 换算为10进制就是 131072,也就是128K(1 block)。

参考

-----Linux系统中的U-Boot、Kernel、RootFS

它们之间在SOC上电后顺序启动、加载,是顺序依赖的。
SOC上电初始化后会先运行内部固化的底层boot(出厂自带,用户不可编程)程序,然后开始运行用户代码(到这一步,如果不使用Linux系统或其他的操作系统的话,就是大家所说的裸机程序)。
U-Boot就是一种开源的通用引导加载器,用于承接从底层boot到Kernel的中间过程
Kernel是Linux系统的核心程序,但只有Kernel还不能功能正常的满足用户使用的运行还需要有RootFS(这是一系列文件的集合,感觉翻译成根文件系统很奇怪,容易令初学者和文件系统的概念混淆,不如叫根文件集合)。
U-Boot 负责硬件的初始化和操作系统内核的加载;然后,Kernel内核启动并管理硬件资源,同时挂载 RootFS;最后,系统进入用户空间,开始执行用户级的应用程序。这三者共同构成了一个完整的嵌入式 Linux 系统。

参考

-----U-Boot工程目录分析

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

-----window和linux开发板之间挂载文件

已调试通过,挂载成功
流程

同事用的方法

-----linux虚拟机 和 linux开发板 之间挂载文件

前提是linux开发板已经创建该目录/mnt/net,并且linux虚拟机已经开机。

linux开发板发送如下指令:

mount -t nfs -o nolock 10.10.40.237:/home/ebaina/work/nfs /mnt/net

通俗来说就是

mount -t nfs -o nolock 虚拟机的ip地址:虚拟机的文件路径 开发板文件路径

-----TEE OS是什么?REE?

TEE:Trusted Execution Environment,可信执行环境
REE:Rich Execution Environment,移动设备通用环境

参考
参考

-----IP、子网掩码、网关、DNS、端口号

参考

-----海思SDK修改点
-----检测不到emmc设备,修改设备树

发送fdisk -l没有反应,检测不到emmc设备。

内核目录下SS928V100_SDK_V2.0.2.2\open_source\linux\linux-4.19.y\arch\arm64\boot\dts\vendor\ss928v100-demb-flash.dts里
&mmc0 {
bus-width = <4>;
status = “okay”;
};

在这里插入图片描述
注意:修改后,osdrv下直接make,不要make clean

烧录固件后,可以检测到emmc
在这里插入图片描述

-----emmc设备挂载、分区

mount -t vfat /dev/mmcblk0p1 /mnt/emmc/
在这里插入图片描述
更改开发板:把mount命令加到/ect/init.d下的S90autorun后面,保存后,开发板断电上电,可以自动挂载。
但这是暂时的,要想每次下载好固件都是挂载好的,需要更改sdk。

SDK怎么修改呢?

修改自启动文件S90autorun
要注意,SS928V100_SDK_V2.0.2.2\scripts\S90autorun与SS928V100_SDK_V2.0.2.2\osdrv\pub\rootfs_glibc_arm64\etc\init.d\S90autorun,
后者会随着前者的修改而改变。

在这里插入图片描述

在这里插入图片描述

-----开发板烧录完上电后自动发送setenv bootargs和setenv bootcmd
setenv bootargs 'mem=512M console=ttyAMA0,115200 tee_enable clk_ignore_unused ubi.mtd=2 root=ubi0:ubifs rootfstype=ubifs rw mtdparts=nand:1M(uboot),12M(kernel),128M(rootfs)';  
setenv bootcmd 'nand read 0x42000000 0x100000 0xC00000;bootm 0x42000000';  
sa 
re

分区表
固件烧录
在这里插入图片描述

烧录完上电后会停在uboot,发送setenv bootargs和setenv bootcmd后会进入系统。

怎么上电自启动呢?
1.修改路径
SS928V100_SDK_V2.0.2.2\open_source\u-boot\u-boot-2020.01\configs\ss928v100_defconfig
在这里插入图片描述
2.修改路径
SS928V100_SDK_V2.0.2.2\open_source\u-boot\u-boot-2020.01\include\configs\ss928v100.h
在这里插入图片描述

3.这里可以修改uboot延时时间
SS928V100_SDK_V2.0.2.2\open_source\u-boot\u-boot-2020.01\configs\ss928v100_defconfig

在这里插入图片描述

-----SDK中修改设备树dts文件后,make clean会恢复原样,怎么才能维持修改状态

1.设备树修改emmc
设备树文件路径:SS928V100_SDK_V2.0.2.2\open_source\linux\linux-4.19.y\arch\arm64\boot\dts\vendor\ss928v100-demb-flash.dts

修改完这个文件,
在这里插入图片描述

还要修改路径:SS928V100_SDK_V2.0.2.2\open_source\linux\linux-4.19.90.patch

在这里插入图片描述
2.修改bootargs和bootcmd

修改路径:SS928V100_SDK_V2.0.2.2\open_source\u-boot\u-boot-2020.01.patch
搜索函数ss928v100_defconfig和ss928v100.h
在这里插入图片描述

在这里插入图片描述

-----烧完固件,跑摄像头推流程序,用vlc打开网络串流失败

开发板开启telnetd服务,使用mobaxterm开启telnetd失败
在这里插入图片描述

使用使用虚拟机可以通过telnetd连上开发板,
在这里插入图片描述
推流失败
在这里插入图片描述
用同事电脑可以,看来是我的windows网络有问题。。。。。

-----怎么修改开发板的IP、子网掩码、网关、DNS

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

参考

-----怎么修改开发板的MAC地址
-----怎么购买合法MAC地址

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值