内存映射

长文分享丨TI AM5718的PRU开发详解

跟風遠走 提交于 2020-04-07 17:33:08
PRUSS简介 TI AM5 718 系列 OK571 8开发板 有两个PRU-ICSS(ProgrammableReal-Time Unit Subsystem and Industrial CommunicationSubsystem),可以独立编程实现一些实时性要求高的个性化需求,实现产品的差异化。 本文介绍PRU处理器架构,开发,调试方法。在系统架构上,PRUSS是连接L3_MAIN内部总线上的一个模块,与系统中其它主模块如ARM,DSP一样,可以访问芯片上的其它外设。 PRUSS包括两个PRU,通过自己的32-bitinterconnect总线与子系统的中断控制器、指令内存、数据内存、共享内存、外设模块相连。 PRU不是一个加速器,它是32-bitLoad/Store RISC架构小端处理器,每个PRU有32个通用寄存器R0~R31,12Kbyte指令RAM,8Kbyte数据RAM和32byte共享RAM。指令RAM是独立的,互相之间不能访问,但数据RAM可以通过映射地址互相访问;专用的21个输入引脚和21个输出引脚。 设备中的pru-icss1和pru-icss2集成功能: •PD_L4PER power domain instantiation • two master ports (PRU0and PRU1 core initiators) on the

android 游戏导引(4. 简单纹理贴图)

爷,独闯天下 提交于 2020-04-04 18:49:05
这一节主要讲述 opengl 的贴图技术,涉及了简单的纹理知识。临近放年假,忙啊。 源码下载: 点我吧 Table of Contents 1 纹理 Texture 1.1 纹理坐标 和 纹理映射 1.2 opengl 中启用纹理映射功能 1.3 创建纹理 1.4 指定纹理 1.5 删除纹理 1.6 绑定纹理 1.7 设置过滤器 1.8 纹理映射 2 常见的几个问题 2.1 贴图呈现白色 2.2 图像扭曲 3 代码实现 4 贴图一个机器人 1 纹理 Texture 纹理定义了物体表面的结构,如花纹,图案,皱纹等等。有了纹理,模型世界才会更加丰富多彩。如一个球形模型,我们给其映射足球的纹理,这就是一个足球,给其映射地球纹理,就是一个地球。另外,如果给一个四边形映射一个墙的纹理,这边是墙,否则,我们需要一块砖一块砖的构建在本节中,我们所指的是狭义的纹理: 图像纹理(对应的有函数纹理—用数学函数来定义的纹理)。 纹理实际上是一个二维数组,其元素是一些颜色值,每一元素称之为纹理像素 (texel)。 纹理对象是一个内部数据类型,存储着纹理数据。你不能直接访问纹理对象,但是可以通过一个整数的 ID 来作为其句柄跟踪之。通过此句柄,你可以作为当前使用的纹理(称之为纹理绑定),也可以从内存中删除这个纹理对象,还可以为一的纹理赋值(将一些纹理数据加载到关联的纹理中,称之为指定纹理)。

ORM基础概念

跟風遠走 提交于 2020-04-02 14:03:22
GPS平台、网站建设、软件开发、系统运维,找森大网络科技! http://cnsendnet.taobao.com 来自森大科技官方博客 http://www.cnsendblog.com/index.php/?p=481 ORM(O/R Mappping对象关系映射)的基础概念 在我们的系统中,存在大量的需要进行持久化存储的对象,这些对象可能是各种各样的业务单据,也可能是我们的系统配置信息等。另外一些属于内存中使用而不需要进行持久化存储的对象,不属于我们的讨论范围。而在支持对象序列化的语言比如C#,Java中,我们可以将这些对象序列化到磁盘文件或者直接保存到关系数据库中。其中关系数据库是我们最主要也是最安全的选择。 在对数据库中的业务数据进行各种操作的时候我们发现,我们进行的大量的Insert、Update、Delete操作,除了其SQL语句根据不同的对象有不同的变换之外,其主要流程存在很多相似之处。于是人们就想通过一个东西来实现这些相同部分的操作的自动化,而那些不同的流程,操作再做特殊处理。这样我们就可以把主要的精力都集中在那些个性化的,特殊的流程操作上。这就是ORM产生的根本原因。 在Java的世界里,ORM框架的应用比较早,也比较成熟,比如Hibernate等,而在.NET世界里,起步就相对晚的多。但是由于担心使用开源的ORM框架导致项目更为复杂(因为这些开源工具虽然很好

MyBatis基本应用

微笑、不失礼 提交于 2020-04-02 09:25:40
Mybatis(iBatis)简介 : (前身为iBatis)MyBatis是一个可以自定义SQL,存储过程和高级映射的持久层框架。MyBatis消除了几乎所以是JDBC代码和参数的手工设置以及结果集的检索。MyBatis可以使用简单的XML或注解用于配制和原始映射,将接口和JavaPOJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 作用:封装了JDBC操作,简化了数据库的访问 功能如下:——封装了获取连接,执行SQL,释放连接 ——封装了SQL参数设置 ——封装了记录映射成实体对象的过程,实体类的属性名与结果查询结果集ResultSet中列名保持一致 开发者:写SQL和实体类,然后使用SqlSession对象执行sql操作 MyBatis体系结构主要由以下几个关键部分 (1)加载配置 配置有两种形式,一种是XML配置文件,另一种是Java代码的注解。MyBatis将SQL的配置信息加载成为一个个MappdStatement对象( 包括了传入参数映射配置,执行的SQL语句,结果映射配置),并将其存储在内存中。 (2)SQL解析 当API接口层接收到调用请求时,会接收到传入SQL的ID和传入对象(可以是Map,JavaBean或者基本数据类型)MyBatis会根据SQL的ID找到对应的MappedStatement

NIO(New IO)

為{幸葍}努か 提交于 2020-03-31 10:34:57
前面介绍 BufferedReader 时提到它的一个特征——当 BufferedReader 读取输入流中的数据时,如果没有读到有效数据,程序将在此处阻塞该线程的执行(使用 InputStream 的 read() 方法从流中读取数据时,如果数据源中没有数据,它也会阻塞该线程),也就是前面介绍的输入流、输出流都是阻塞式的输入、输出。不仅如此,传统的输入流、输出流都是通过字节的移动来处理的(即使不直接去处理字节流,但底层的实现还是依赖于字节处理),也就是说,面向流的输入/输出系统一次只能处理一个字节,因此面向流的输入/输出系统通常效率不高。 从 JDK 1.4 开始,Java 提供了一系列改进的输入/输出处理的新功能,这些功能被统称为新IO(New IO,简称NIO),新增了许多用于处理输入/输出的类,这些类都被放在 java.nio 包以及子包下,并且对原 java.io 包中的很多类都以 NIO 为基础进行了改写,新增了满足 NIO 的功能。 Java 新IO概述 新IO和传统的IO有相同的目的,都是用于进行输入/输出,但新IO使用了不同的方式来处理输入/输出,新IO采用内存映射文件的方式来处理输入/输出, 新IO将文件或文件的一段区域映射到内存中,这样就可以像访问内存一样来访问文件了 (这种方式模拟了操作系统上的虚拟内存的概念), 通过这种方式来进行输入/输出比传统的输入

Windows Embedded CE 6.0 Internals (2) Memory

不想你离开。 提交于 2020-03-29 03:35:52
这篇文章是继文章 Windows Embedded CE 6.0 Internals (1) 的。内存这块一直是让人头痛的东西,因为比较复杂,但是我们却需要经常与其打交道——内存泄漏、异常定位、程序优化等等。这篇文章以及后续的文章我试着能够刨根问底。 5.内存构架 内存的种类 1.Random Access Memory (RAM) Random access memory can be read or written directly at any address . There are various types of RAM that are differentiated by the underlying hardware technology used to implement them. However they all share the ability to be read or written directly at any random address. RAM memory is volatile, the contents are only maintained as long as power is not lost. 2.Read Only Memory (ROM) Read Only Memory typically refers to memory

NFS

霸气de小男生 提交于 2020-03-26 23:39:46
1. nfs简介 1.1nfs特点 NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源 在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样 nfs适用于Linux与Unix之间实现文件共享,不能实现Linux与Windows间的文件共享功能 nfs是运行在应用层的协议,其监听于2049/tcp和2049/udp套接字上 nfs服务只能基于IP进行认证,这也是它的缺点之一 1.2 使用nfs的好处 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量 1.3 nfs的体系组成 nfs体系至少有两个主要部分: 一台nfs服务器 若干台客户机 nfs体系的架构图如下: 客户机通过TCP/IP网络远程访问存放在NFS服务器上的数据 在NFS服务器正式启用前,需要根据实际环境和需求,配置一些NFS参数 1.4

NHibernate集合映射中的set, list, map, bag, array

余生长醉 提交于 2020-03-23 16:34:14
set, bag, list, map的语义 集合最重要的一点是集合的语义。Java JPA中对Set, List, Collection, Map四种集合进行了定义(Java的Collection允许bag语义),NHibernate从Hibernate移植时照搬了这些概念。但是.Net社区中这些概念比较弱,很多人对set, bag, map的说法很陌生,这也对NHibernate集合映射的使用造成一定障碍。 set 集合中的对象是唯一的,无序的,不能通过索引、key值访问,只能使用enumerator列举集合对象。 .Net没有原生的set类,所以NHibernate使用Iesi.Collections的set。 不同的set实现可能存在一些差异,因此导致set表现出来的特性不大一样,但在设计、使用上的主要原则是将set看作唯一、无序的。 Iesi.Collections中,基于System.Collections.SortedList实现的ListSet在列举集合对象时顺序跟添加到set的顺序一致,但基于System.Collections.HashTable实现的HashSet就不一致了。HashSet根据对象的GetHashCode()返回值判断对象是否相等,而ListSet则使用对象的Equals()方法进行判断,所以如果没有注意重载GetHashCode(

MyBatis执行原理图

元气小坏坏 提交于 2020-03-23 06:44:07
作者:W&L 推荐: 陶邦仁的博客   (1)加载配置并初始化 触发条件: 加载配置文件 配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。 (2) 接收调用请求 触发条件: 调用Mybatis提供的API 传入参数 :为SQL的ID和传入参数对象 处理过程: 将请求传递给下层的请求处理层进行处理。 (3)处理操作请求 触发条件: API接口层传递请求过来 传入参数 :为SQL的ID和传入参数对象 处理过程: (A)根据SQL的ID查找对应的MappedStatement对象。 (B)根据传入参数对象解析MappedStatement对象,得到最终要执行的SQL和执行传入参数。 (C)获取数据库连接,根据得到的最终SQL语句和执行传入参数到数据库执行,并得到执行结果。 (D)根据MappedStatement对象中的结果映射配置对得到的执行结果进行转换处理,并得到最终的处理结果。 (E)释放连接资源。 (4)返回处理结果 将最终的处理结果返回。 1.1 分析结论 1、 mybatis 配置文件,包括 Mybatis 全局配置文件和 Mybatis 映射文件 ,其中全局配置文件配置了数据源、事务等信息;映射文件配置了 SQL

计算机组成原理第三章多层次的存储器

大兔子大兔子 提交于 2020-03-22 20:06:20
1. SRAM存储器(静态读写存储器) 存取速度快,容量小,价格昂贵。 基本的静态存储元阵列包含:1. 存储位元 2. 三组信号线(地址线、数据线、控制线)。 通常做成Cache,Cache主要是为了平缓各器件之间的差异。 掉电就丢失。 注意:读写操作不会同时发生。 (读与写功能的互锁逻辑) 2. DRAM存储器(动态读写存储器) 存储容量大,速度慢,价格低廉。 存储位元的记忆原理:DRAM存储器的存储位元是由一个MOS晶体管和电容器组成的记忆电路。——MOS管被当作开关使用,信息1或0则是有电容器上的电荷量来体现的。——充满电时为1,没有电荷时为0。 通常做成主存 SRAM与DRAM的比较 SRAM DRAM 存储信息 触发器 电容 面积 大 小 容量 少 多 存储成本 高 低 破坏性读出 非 是 需要刷新 不要 要 存取速度 快 慢 功率损耗 少 多 集成度 低 高 3. SRAM和DRAM容易扩充,扩充原则:先横后竖 字长位数扩展(位扩展) 需要用多片给定芯片扩展字长位数。 所需芯片:D=设计要求的存储器容量/选择芯片存储器容量 字存储容量扩展(字扩展) 给定的芯片存储容量较小(字数少),此时需要用多片给定芯片来扩展字数。 所需芯片:D=设计要求的存储器容量/选择存储器容量 字扩展: 所需芯片数量=CPU能访问的存储器总容量/每个芯片所能提供的容量。