自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

原创 vxworks异常分析方法

https://blog.csdn.net/u014082689/article/details/80177051https://blog.csdn.net/zyboy2000/article/details/6856769https://www.doc88.com/p-3498097127608.htmlhttps://blog.csdn.net/zyboy2000/article/...

2019-10-01 16:28:43 798 1

原创 FAT32文件系统格式详解

https://blog.csdn.net/marcosun_sw/article/details/84586379

2019-09-27 07:46:01 533

转载 如何消除CACHE对DMA的影响?

随着社会的发展、人们生活水平的提高,人们对嵌入式计算机应用的要求也越来越高。因此,对嵌入式系统的性能要求也越来越高。明显体现在嵌入式系统的CPU速度的不断提高上。但问题也随之而来,嵌入式CPU的主频不断地提高,一方面加强了CPU的处理能力,另一方面,在速度上造成了与慢速的系统存储器极不相配的情况,从而影响了整个系统的性能。为了解决这个问题,引入了CACHE技术。CACHE是一种高速缓冲存储器,...

2019-02-27 22:10:01 570

转载 MMU在VxWorks中的实现

MMU在VxWorks中的实现1.内存管理单元MMUVxWorks提供两级虚内存支持:与VxWorks捆绑在一起的基本级和需要可选产品VxVMI的完全级。1.1指令和数据MMUPowerPC MMU允许指令和数据MMU被分别允许或禁止。在SELECT_MMU下的属性窗口的参数表中的参数USER_I_MMU_ENABLE和 USER_D_MMU_ENABLE缺省是被允许的。为了允许/禁止一个...

2019-02-27 21:45:55 1561 1

转载 关于L1 L2 Cache

CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即 将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。由此可见,在CPU中加入缓存是一种高效的解决方案,这样整个内存 储器(缓存+内存)就变成了既有缓存的高速度,又有内存的大容量的存储系统了。缓存对CP...

2019-01-05 20:47:39 7123

转载 cache DMA L1 L2 的一些知识

程序的局部性原理:是指程序在执行时呈现出局部性规律,即在一段时间内,整个程序的执行仅限于程序中的某一部分。相应地,执行所访问的存储空间也局限于某个内存区域。局部性原理又表现为:时间局部性和空间局部性。时间局部性是指如果程序中的某条指令一旦执行,则不久之后该指令可能再次被执行;如果某数据被访问,则不久之后该数据可能再次被访问。空间局部性是指一旦程序访问了某个存储单元,则不久之后。其附近的存储单元也将...

2019-01-05 20:30:36 980

转载 电动汽车控制策略

http://www.doc88.com/p-3029984672161.html

2017-07-05 13:02:41 2814 1

转载 积分与导数原理

https://www.zhihu.com/question/21439225积分求面积原理:积分表示:导数原理:

2017-07-04 17:04:57 2802

原创 CCP下位机驱动程序解析

便于理解CAN标定的工作原理main_functionccpInitCalPage  //初始化标定页,将标定ROM数据(16K)读取到RAM(初始化标定RAM)while(1)if (CAN_bNewData(8))//如果有CAN消息CAN_vGetMsgObj(8,&o);  //接收CAN消息ccpCommand(&o.ubData[0]);  //处理接收到的

2017-06-16 07:53:27 5201 1

原创 J1939学习知识点

CAN-2.0BSAE-J1939国标中文版(PUDN有下载)J1939协议栈代码

2017-05-23 15:51:57 1452

转载 Hard Fault 异常调试方法

1 Cortex-M3/4的Fault简介        Cortex-M3/4的Fault异常是由于非法的存储器访问(比如访问0地址、写只读存储位置等)和非法的程序行为(比如除以0等)等造成的。常见的4种异常及产生异常的情况如下:Bus Fault:在fetch指令、数据读写、fetch中断向量或中断时存储恢复寄存器栈情况下,检测到内存访问错误则产生Bus Fault。M

2016-05-12 09:06:56 25702 3

原创 环形缓冲区的设计与实现

#include #define MAXSIZE 8 int ringbuf[MAXSIZE]; int readldx=0; int writeldx=0; int next_data_handle(int addr) { return (addr+1) == MAXSIZE ? 0:(addr+1)

2016-01-14 11:08:14 1065

转载 FAE职业规划

FAEField Application Engineer(现场应用工程师) ,其他的说法就叫技术支持 主要工作内容:1.提供产品技术支持,包括咨询解答、产品培训、现场技术指导、故障分析和排除等2.负责市场部与R&D的沟通与信息反馈,参与技术培训和技术研讨会3.收集客户反馈意见,制定市场需求,反馈给R&D,跟踪其进展和市场反应4.制定相关工具

2015-12-25 16:06:02 7375

转载 Z-Stack协议中几个重要概念的理解

1. 原语    ZigBee设备在工作时,各种不同的任务在不同的层次上执行,通过层的服务,完成所要执行的任务。每一层的服务主要完成两种功能:根据它的下层服务要求,为上层提供相应的服务;另一咱是根据上层的服务要求,对它的下层提供相应的服务。各项服务通过服务原语来实现。    可以把原语看作是API函数 是ZigBee中最基本的操作, 一般协议都有对原语进行程序实现 在自己开发系统时,只需要

2015-12-04 10:30:44 2271

转载 知其雄,守其雌,为天下溪

知其雄 守其雌 为天下溪为天下溪 常德不离 复归於婴儿知其白 守其黑 为天下式为天下式 常德不忒 复归於无极知其荣 守其辱 为天下谷为天下谷 常德乃足 复归於朴朴散则为器 圣人用之则为官长故大制不割************************************************************************虽知阳刚的显要,但仍能

2015-05-25 18:51:59 2111

原创 ubuntu9.10 更新源 (sudo apt-get install xxx提示E: Couldn't find package xxx)

deb http://old-releases.ubuntu.com/ubuntu/ karmic main restricted universe multiversedeb http://old-releases.ubuntu.com/ubuntu/ karmic-security main restricted universe multiversedeb http://ol

2014-12-31 09:04:43 2087

转载 SQLITE3数据库错误:database disk image is malformed

SQLite有一个很严重的缺点就是不提供Repair命令。导致死亡提示database disk image is malformed它的产生有很多种可能,比如,磁盘空间不足,还有就是写入数据过程中突然掉电等。官方对产生原因的一些说明: http://www.sqlite.org/lockingv3.html#how_to_corruptsqlite my.sqlite3sql

2014-12-30 16:41:01 1680

转载 在Sqlite中通过Replace来实现插入和更新

你可能在批量处理一个事务的时候,想要批量插入一系列的数据,但是这些数据当添加完一次之后,重新添加的时候,你不想要重新添加,只是想将原有的数据进行更新,例如:我想要通过Excel将一系列的图书导入到数据库中,而这些图书在你下一次编辑之后,重新导入,只是对原有的数据进行修改。以上是一个业务的场景。在MSSQL中,你可以使用诸如:IFNOT EXISTS(

2014-12-30 10:00:27 586

转载 搭建本地SVN版本管理工具

SVN是一款功能强大的版本控制系统,对于习惯于windows环境的中国工程师而言,使用TortoiseSVN是个不错的选择,其友好的界面和易用的操作使得其很容易掌握。从网址:http://tortoisesvn.net/downloads可以下载到最新版的TortoiseSVN,如果不习惯英文界面的话还有中文语言包可以安装,真是十分方便。对于局域网内有服务器支持的版本管理系

2014-12-30 09:44:13 469

转载 SQLite3命令操作与使用总结

SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令。本文档提供一个样使用sqlite3的简要说明.一.qlite3一些常用Sql语句操作创建表: create  table 表名(元素名 类型,…); 删除表: drop  table 表名;              插入数据: insert  into 

2014-12-29 16:22:12 4677

转载 软件框架设计

软件框架 -转( 本文源自《.NET通信框架的设计、实现与应用》书稿第一章内容,未经许可,不得转载。)  转自zhuweisky   框架和类库等概念的出现都是源于人们对复用的渴望。“不要重复发明轮子”,成了软件界的一句经典名言。从最初的单个函数源代码的复用,到面向对象中类的复用(通常以类库的形式体现),再到基于组件编程中二进制组件(.NET中是以IL程序集形式存在的)

2014-12-28 11:17:49 1390

转载 SQLite优化笔记

最近在折腾一个几十 G 的 SQLite 数据库,里边有十来个表,大都有数千万条数据,结果是一个 SELECT COUNT(*) 都一个小时没动静……于是翻了些资料优化了一下,以下是流水账:1、将数据库从 HDD 转移到 SSD 。由于 SSD 的 IOPS 是 HDD 的数十倍,某些查询可以有十倍以上的提升。不过 SSD 空间实在有限,如果能把索引独立存放就好了……从 HDD 到

2014-12-26 13:45:04 830

转载 SQLite3性能优化

SQLite3性能调整主要通过pragma指令来实现。比如调整:空间释放、磁盘同步、Cache大小等。一.空间释放1.如何查询:PRAGMA auto_vacuum;含义:查询数据库的auto-vacuum标记。2.标记含义:auto-vacuum标记的含义:正常情况下,当提交一个从数据库中删除数据的事务时,数据库文件不改变大小。未使用的文件

2014-12-26 13:07:25 1001

转载 嵌入式软件的重构思想

一. 概述:有人把《重构——改善既有代码的设计》和《设计模式》并列为“JAVA行业的圣经”,这实在并不为过,其实,还可以称为面向对象软件开发的圣经,本人对面向对象略知一二,多年都是在嵌入式领域,采用结构化设计开发软件,但是,通过培训和自学习《重构——改善既有代码的设计》这本书,对软件的开发有了更深的理解,甚至有茅塞顿开的感觉,怪不得我们的软件质量提不高,怪不得我们的软件难以维护,怪不得我们的单

2014-12-22 13:21:44 951

原创 软件重构的重要性

什么是重构重构,用最简单的一句话说:就是要在不改变系统功能的情况下,对系统的内部结构进行重新调整。重构的最直接目的在于改进软件系统的内部架构。一个好的结构可以更加适应于需求的变化,更好的满足客户的需求,最大限度的延长软件系统的生命周期。为什么要重构在不改变系统功能的情况下,改变系统的实现方式。为什么要这么做?投入精力不用来满足客户关心的需求,而是仅仅改变了软件的实现方式,这是否是在

2014-12-22 11:29:57 2547

原创 单片机外挂SDRAM与NANDFLASH的系统规划,并设计一个山寨内核

STM32F4系列都是M4,STM32F4XX9系列可以

2014-11-08 09:36:37 4152 1

原创 LINUX的字符设备驱动基本原理用到单片机系统中

LINUX设备的驱动比较复杂,要用到单片机zhe

2014-10-30 09:19:59 657

原创 LWIP分析与socket编程方法

主要介绍TCP服务器的编写步骤方法,其流程如下所示1、创建一个基于流的socket2、设置本地服务器IP地址及端口号3、绑定创建的socket和本地IP地址及端口信息4、监听该socket(listen)5、接受该socket(accept)6、发送、接收数据经过了以上几个步骤以后,一个简单的服务器就创建起来了,TCP服务器主要是多了监听和接

2014-07-09 22:20:15 8816 2

原创 学习笔记 --- LINUX I2C设备驱动的实现

上一篇文章中介绍了框架,只是把一个设备

2014-04-11 13:48:58 825

原创 学习笔记 --- LINUX I2C总线驱动框架分析

I2C也是一种总线,协议就不多说了,这里主要分析框架,怎么使用内核kuangjia

2014-04-11 13:09:17 777

原创 学习笔记 --- LINUX USB设备驱动的编写

上一篇文章说过了USB总线驱动框架

2014-04-10 14:41:35 830

原创 学习笔记 --- LINUX USB总线驱动框架分析

现象:把USB设备接到PC1. 右下角弹出"发现android phone"2. 跳出一个对话框,提示你安装驱动程序问1. 既然还没有"驱动程序",为何能知道是"android phone"答1. windows里已经有了USB的总线驱动程序,接入USB设备后,是"总线驱动程序"知道你是"android phone"     提示你安装的是"设备驱动程序"     

2014-04-10 10:17:06 817

原创 学习笔记 --- LINUX TTY子系统框架分析

tty_init1 创建tty_cdev字符设备    cdev_init     /*设置字符设备操作函数为tty_fops*/    cdev_add        /* 注册字符设备*/2 创建console_cdev字符设备(用于终端打印)    cdev_init     /*设置字符设备操作函数为console_fops*/    cdev_add      /

2014-04-05 13:58:49 1233

原创 学习笔记 --- LINUX UART串口驱动框架分析

驱动端:  s3c2440_serial_probe  //匹配"s3c2440-uart"时调用这个函数    uart_add_one_port    tty_register_device   //注册这个tty设备uart    device_create_file  设备端:  s3c24xx_init_uarts     (cpu->init_uarts

2014-04-05 11:29:05 2129

原创 学习笔记 --- LINUX 应用调试之编写之事件记录与自动重现

在前面的文章讲过在调试驱动的时候可以使用proc的方式,把一些自己的调试x

2014-04-04 14:15:27 597

转载 学习笔记 --- LINUX 应用调试之添加系统调用

一、原理要想自制系统调用,当然首相要做的就是明白系统调用的过程:我们拿open函数来举个例子:当用户空间执行open函数时,会通过glibc函数库的作用最终去调用sys_open函数,sys_open函数最终又会调用我们具体注册的open函数!那么这里最主要的就是glibc函数库干了些什么呢?其实它的作用就是当用户空间执行open函数时,会去执行一条swi #val指令,这条指令会使cpu

2014-04-04 12:27:46 697

转载 学习笔记 --- LINUX应用调试之修改内核输出应用程序的段错误信息

根据之前的调试我们知道,当应用程序出错的时候,会打印一些信息。但是有时候这些信息时不够的,那么我们能否配置内核使其输出更多的信息呢?答案是肯定的,本节我们就来详细讲一下:还记得我们在运行firstdrvtest的时候曾经输出过如下一些错误信息:Unable to handle kernel paging request at virtual address 56000050pgd

2014-04-04 11:55:41 1208

转载 学习笔记 --- LINUX应用调试之使用GDB

一、调试原理这里的gdb调试是在pc机上对在开发板上运行的程序进行调试。具体来说的话,在pc机上要运行gdb,在开发板上运行dbserver。gdb调试的时候,pc机上的gdb向开发板上的gdbserver发出命令,而开发板上的gdbserver就会向应用程序发出信号,使应用程序停下来或者完成其他一些工作!由此我们知道,pc机上要运行gdb,开发板上要运行gdbserver!二、安装g

2014-04-04 11:50:36 785

转载 学习笔记 --- LINUX 应用调试之使用strace命令追踪系统调用

aaa

2014-04-04 11:45:16 1067

转载 学习笔记 --- LINUX 驱动调试之定位系统僵死

转自:http://liu1227787871.blog.163.com/blog/static/205363197201261142752997/在系统空间可能会发生这样一种情况:系统僵死!此时系统处于僵死状态,进程不再运行!那么有没有办法找到这个僵死的进程呢?答案是肯定的!这里要引入的就是系统时钟中断的概念:即便是在系统将死的情况下,系统时钟中断依然在以固定的频率发生,那么我们就可

2014-04-03 14:50:40 706

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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