嵌入式linux

韦东山嵌入式Linux学习笔记05--存储管理器

只愿长相守 提交于 2019-11-28 01:47:34
SDRAM:    原理图如下: jz2440 v3开发板上面用的内存芯片为钰创科技公司生产的EM63A165TS,一片内存大小为32MB大小,一共有两块,共64MB的大小. SDRAM接的是BANK 6,所以他的起始地址是 0x30000000. SDRAM的基本寻址关系 SDRAM的存储结构逻辑如上图, SDRAM内部是一个存储阵列,阵列就如同表格一样,将数据"填进去".和表格的检索原理一样,先指定一个行,再指定一个列,两点确定一个坐标,就可以准确地找到所需要的 单元格,这就是SDRAM寻址的基本原理.这个单元被称为存储单元,这个表格(存储阵列)就是逻辑Bank(就是L-Bank).SDRAM一般含有四个L-Bank. 对SDRAM的访问可以分为如下几个步骤:   1.CPU发出的片选信号nSCS0有效,它选中SDRAM芯片.   2.SDRAM有四个L-Bank,需要两根地址线来选中其中的一个,根据开发板的设计, 选用了ADDR24和ADDR25作为L-Bank的选择信号.   3.对被选中的芯片进行统一的行/列(存储单元)寻址.     根据SDRAM芯片的列地址线数目设置CPU的相关寄存器后,CPU就会从32位的自动分出L-Bank选择信号, 行地址信号,列地址信号,然后发出行地址信号,列地址信号. L-Bank选择信号在发出行地址信号的同时发出,并维持到列地址信号结束.

嵌入式软件开发第1天

瘦欲@ 提交于 2019-11-28 01:29:40
一、linux基础命令 终端 Terminal 操作系统 shell 命令 【-选项】 【参数】 1、ls list 显示路径下的文件信息 -a 选项 显示隐藏文件(unix下的隐藏文件以.开头) -l 详细显示文件信息 -t 按时间进行排序 按时间倒序(新建的在前) -r 按原来的逆序显示 -S 按文件大小 从大到小显示 drwxr-xr-x 4 ubuntu ubuntu 4096 6月 10 2017 build 文件类型属性 - 普通文件 d 目录 l 链接文件 s socket文件 p 管道文件 c 字符设备文件 b 块设备文件 rwxr-xr-x 九位 每三位一组 每一组代表不同角色(文件属有的,文件属组,其它角色)的访问属性 文件属性 r 读 w 写 x 执行(可执行权限 不是说文件可以运行) - 代表没有该权限 rwx 可读可写可执行 如果没有某项权限用-替代 4 硬链接数 只有当一个文件的硬链接数变为0时该文件才真正被删除 否则删除时 只是硬链接数减少1 表示访问文件的途径 ubuntu ubuntu 属主名 属组名 4096 文件大小 单位字节 Byte 内存单位: 1T=1024G 1G=1024MB 1MB=1024KB 1KB=1024Byte 1Byte=8个二进制位 6月 10 2017 文件最后修改时间 build 文件名 2、 pwd print

嵌入式Linux容器技术

别来无恙 提交于 2019-11-27 05:09:58
嵌入式Linux容器技术 一、Linux容器技术 Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源。 LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。与传统虚拟化技术相比,它的优势在于: (1)与宿主机使用同一个内核,性能损耗小; (2)不需要指令级模拟; (3)不需要即时(Just-in-time)编译; (4)容器可以在CPU核心的本地运行指令,不需要任何专门的解释机制; (5)避免了准虚拟化和系统调用替换中的复杂性; (6)轻量级隔离,在隔离的同时还提供共享机制,以实现容器与宿主机的资源共享。 总结:Linux Container是一种轻量级的虚拟化的手段。 Linux Container提供了在单一可控主机节点上支持多个相互隔离的server container同时执行的机制。Linux Container有点像chroot,提供了一个拥有自己进程和网络空间的虚拟环境,但又有别于虚拟机,因为lxc是一种操作系统层次上的资源的虚拟化。 LXC与docker的关系 (1

韦东山嵌入式Linux学习笔记07--Nandflash

陌路散爱 提交于 2019-11-26 01:05:15
jz2440 v3上面用的nandflash是 K9F2G08U0C, 大小为256MB. 一个页的大小为(2k+64)byte,一个块的大小为(128k+4k)byte,原理图如下: nand的命令集: 那应该如何访问nand里面的数据呢?只要读写s32440的相关寄存器,就可以驱动nand的一些引脚. Makefile objs := head.o init.o nand.o main.o #依赖于这些文件 nand.bin : $(objs) arm-linux-ld -Tnand.lds -o nand_elf $^ #链接nand.lds $^表示所有依赖目标的集合 arm-linux-objcopy -O binary -S nand_elf $@ #规则中的目标文件集 arm-linux-objdump -D -m arm nand_elf > nand.dis %.o:%.c arm-linux-gcc -Wall -c -O2 -o $@ $< %.o:%.S arm-linux-gcc -Wall -c -O2 -o $@ $< clean: rm -f nand.dis nand.bin nand_elf *.o nand.lds SECTIONS { firtst 0x00000000 : { head.o init.o nand.o} /