C++ 左值右值,用于移动(move)和转发(forward)

    新标准重新定义了lvalue和rvalue,并允许函数依照这两种不同的类型进行重载。通过对于右值(rvalue)的重新定义,语言实现了移动语义(move semantic)和完美转发(perfect forwarding),通过这种方法,C++实现了在保留原有的语法并不改动已存在的代码的基...

2018-06-30 14:03:56

阅读数 309

评论数 0

C++ 匿名变量的一些理解

总想总结一下,但是总是不断否定自己的理解,迟迟不能下笔。终于今天还是写下点记录和理解。运行环境:OS : Ubuntu 16.04 Desktop G++ Version:gcc version 5.4.0 20160609(Ubuntu 5.4.0-6ubuntu1~16.04.9)匿名变量:这...

2018-06-24 13:27:22

阅读数 798

评论数 0

DMA:mem-to-mem mem-to-device device-to-mem

    换了工作,算是步入汽车行业了。汽车不同于消费类电子,使用的是"高性能单片机",尽管物理通讯方式为:can lin spi 这些相对与消费类电子比较慢速的外设,但是AutoSar规范定义的比较详细。    刚开始接触"高性能单片机&...

2018-03-17 11:46:12

阅读数 253

评论数 0

gcc使用---动态库链接静态库

最近自己的项目中遇到一个问题: 编译一个动态库,动态库中使用了静态库的函数如下图所述

2017-02-24 16:44:24

阅读数 7541

评论数 10

卷积推到笔记(未整理)

笔记较为离散 以后有空再整理,这是两年前写的,一直没有整理。

2017-02-24 04:55:20

阅读数 466

评论数 0

多线程的exit()逻辑

今天很巧再一次调试了多线程的代码。主要思想就是:通过pthread_create创建一个线程,然后通过主线程A控制创建出来的线程B,完成各种功能。 video_thread() { while() { display(); } exit(0); } main() { ...

2016-10-28 05:35:01

阅读数 2005

评论数 0

linux内核中内存分配调用API-引起的一些思考

linux内存管理中的一些理解

2016-10-19 16:39:45

阅读数 966

评论数 0

Mmap 实现原理和应用(流程)

在调试完达芬奇的视屏输入后记录一下调试心得。重点还是再次放在系统调用mmap后的内存分配上。做了一个mmap系统调用的笔记以及记录以备后用。大致介绍了linux中对于mmap的应用以及后续产生缺页异常处理的一个流程。 由于之前的调试中一直对于vma的区域选取产生疑问,不知道vma到底是何许人也,...

2016-07-27 15:57:26

阅读数 1884

评论数 0

OMAP3 DSS 初始化过程(2)总线关系

这篇文章是对前面一片文章的补充。在文章(1)中遗漏了一些重要信息,而这些信息也是在随后的调试和修改过程中发现的。这里再做一次总结。还是那句老话,如有不足,请指出文章中错误的观点。     文章(1)中提到了omap_dss_register_device和omap_dss_register_dr...

2016-02-01 23:15:16

阅读数 1168

评论数 0

OMAP3 DSS 初始化过程(1)总线关系

1,调用流程 omap_dss_bus_register()注册一个总线: static struct bus_type dss_bus_type = { .name = "omapdss", .match = dss_bus_match, .dev_attrs = defau...

2016-01-27 01:54:59

阅读数 1294

评论数 0

strncpy 引起的思考,重新认识了strncpy这个函数

首先来看一个司空见惯的c语言列子: #include #include int main() {     unsigned char arry[] = {0x00,0x01,0x02,0x03};     unsigned char dest[] = {0xff,0xff,0x...

2015-07-29 21:41:47

阅读数 947

评论数 1

中断交互数据的方式

概念: A,带有buffer缓存的设备硬件描述: 1,fifo 2,dma   1,fifo可以使用任何存储空间,包括外设的一些寄存器组,只要构成一个cpu指令无法完成的读写操作(原子操作)都可以构成buffer。 2,dma是设备,不是存储空间。dma的作用是操作和管理fifo的行为...

2015-05-21 21:26:46

阅读数 1224

评论数 0

内核分配大块连续内存的方法

参数传递:     uboot向内核传递参数的方式分为两类。     (1)第一类是通过boot cmd 例如在uboot终端提示行使用pri命令现实出的boot arg等。     (2)第二类是通过DeviceTree。在/arch/arm/boot/dts/文件中和定义了和开发板相关的...

2015-05-21 21:18:23

阅读数 4250

评论数 0

ARM-Linux (临时,正式) 建立页表的比较

 很久没有写博客了,由于之前的写关于OMAP3530文章还没有整理。再加上一直在找工作,找到工作后又投入到另外的平台去工作。始终在忙忙碌碌,但是对于代码确实渐渐疏远。 在做项目的时候要使用DDR3分配内存,不经意间使用要和MMU以及TLB打交道。因此特地写下这篇文章以备后用。(工作...

2014-09-01 00:34:43

阅读数 3729

评论数 1

MMU 存储访问控制

关于MMU的地址转换和页表的映射网上已经有了很多的文章。确实写得很好,获益匪浅。在这篇文章中只要记录和描述MMU中关于权限访问的控制。   1,MMU对段和页进行保护,在保护过程中区分了权限。它是由域的访问控制字段和一级描述符或二级描述符中的AP字段,以及C1寄存器的S(表示system),R...

2014-06-03 15:20:38

阅读数 2055

评论数 0

ARM 中断状态和SVC状态的堆栈切换 (异常)

ARM 中断状态和SVC状态的堆栈切换 (异常)   基础知识: Arm的寄存器使用规则以及寻址指令: R13  Sp     堆栈寄存器 R14  Lr     连接寄存器 R15  PC     程序计数器   多寄存器寻址: LDMIA R0!,{R1-R4} 执行以后的效果 R1  R2...

2013-07-07 01:23:04

阅读数 15081

评论数 0

arm 多寄存器存取使用

老是忘记一些指令的用法... ... 索性记下来,便于以后再查。就当是学习笔记了。 多寄存器和堆栈寻址的用法: 多寄存器寻址: LDMIA,LDMIB,STMIA,STMIB,LDMDA,LDMDB,STMDA,STMDB; 堆栈寻址: LDMFA,LDMFD,STMFA,STMFD,L...

2013-07-01 02:13:22

阅读数 1247

评论数 0

Mmap的实现原理和应用

很多文章分析了mmap的实现原理。从代码的逻辑来分析,总是觉没有把mmap后读写映射区域和普通的read/write联系起来。不得不产生疑问: 1,普通的read/write和mmap后的映射区域的读写到底有什么区别。 2, 为什么有时候会选择mmap而放弃普通的read/write。 3,...

2013-02-23 00:02:30

阅读数 14135

评论数 12

Kernel Linker Scripts Analysis (ARM Architecture)

1. arch/arm/kernel/vmlinux.lds的生成: 顶层的vmlinux是由arch/arm/kernel/vmlinux.lds链接生成,顶层Makefile里面定义: 693 vmlinux-lds  := arch/$(SRCARCH)/kernel/vmlinux.l...

2013-01-28 21:45:40

阅读数 989

评论数 0

Sound Mixer (Control 接口 1)

1,初始化函数: snd_soc_add_controls(codec, wm9713_snd_ac97_controls, ARRAY_SIZE(wm9713_snd_ac97_controls));      首先wm9713_snd_ac97_controls结构体数组的实力化,这个...

2013-01-23 17:08:14

阅读数 1733

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭