自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

转载 文章标题

专题1:Makefile工程管理 <div class="article_manage clearfix"> <div class="article_l"> <span class="link_categories"> 标签: <a href="http://www.csd

2017-08-05 17:12:23 305 1

转载 欢迎使用CSDN-markdown编辑器

对于喜欢逛CSDN的人来说,看别人的博客确实能够对自己有不小的提高,有时候看到特别好的博客想转载下载,但是不能一个字一个字的敲了,这时候我们就想快速转载别人的博客,把别人的博客移到自己的空间里面,当然有人会说我们可以收藏博客啊,就不需要转载,(⊙o⊙)… 也对。。实现  因为我自己当初想转载的时候却不知道该怎么转载,所以学会了之后就把方法写出来,帮助那些想转载却不知道该怎么转载的人(大神勿笑)。

2017-08-05 17:07:22 190

原创 伴鱼使用教程!【原创】

Palfish 英语口语提高神器 –  (为什么它值得你去了解)

2017-05-14 11:20:41 2683

原创 mmap系统调用

void* mmap ( void * addr , size_t len , int prot , int flags , int fd , off_t offset )内存映射函数mmap, 负责把文件内容映射到进程的虚拟内存空间, 通过对这段内存的读取和修改,来实现对文件的读取和修改,而不需要再调用read,write等操作。addr:指定映射的起始地址, 通常设为N

2015-09-03 10:25:16 474

转载 memdev.c字符设备驱动分析(转载)

下面来分析一个简单的字符设备驱动,和LDD3中的scull类似,实现在一段内存中模拟字符设备的读和写操作。源代码来自国嵌视频 memdev.h 自定义头文件******************************************************************************#ifndef _MEMDEV_H_#define _MEM

2015-08-30 21:16:54 691

原创 并发与竞态

并发:多个执行单元同时被执行。竞态:并发的执行单元对共享资源(硬件资源和软件上的全局变量等)的访问导致的竞争状态例:if (copy_from_user(&(dev->data[pos]), buf, count))ret = -EFAULT;goto out;假设有2 个进程试图同时向一个设备的相同位置写入数据,就会造成数据混乱。处理并发的常用技术是加锁或者互

2015-08-29 17:29:13 380

原创 linux驱动调试技术

对于驱动程序设计来说,核心问题之一就是如何完成调试。当前常用的驱动调试技术可分为:• 打印调试(printk)• 调试器调试(kgdb)• 查询调试1、合理使用printk#ifdef PDEBUG#define PLOG(fmt,args...) printk(KERN_DEBUG "scull:"fmt,##args)#else#define PLOG(

2015-08-29 17:23:02 794

原创 字符设备驱动设计

设备号:主设备号用来标识与设备文件相连的驱动程序。次设备号被应用程序用来辨别操作的是哪个设备。**主设备号用来反映设备类型****次设备号用来区分同类型的设备**Q: 内核中如何描述设备号?A: dev_t**其实质为unsigned int 32位整数,其中高12位为主设备号,低20位为次设备号。Q: 如何从dev_t中分解出主设备号?A: MAJOR(d

2015-08-29 10:30:52 450

原创 Linux字符设备驱动程序编译进入内核的方法

将驱动程序直接编译进入内核1、将.c文件移入driver/char里面2、修改Kconfig文件3、在driver/char文件内部修改Makefile文件

2015-08-29 10:23:55 946

原创 进程地址空间

虚拟内存linux操作系统采用虚拟内存管理技术,使得每个进程都有独立的进程空间地址,该空间的大小为3G,用户看到和接触的都是虚拟地址,无法看到实际的物理地址。利用这种虚拟地址不但能起到保护操作系统的作用,而且更重要的事用户程序可使用比实际物理内存更大的地址空间。linux将4G的虚拟地址空间分为两个部分----用户空间与内核空间。用户空间从0到0xbfffffff,内核空间从3G到4G。用

2015-08-27 17:17:48 468

原创 Linux内存管理

内存是Linux内核所管理的最重要的资源之一,内存管理子系统是操作系统中最重要的部分之一。对于立志从事内核开发的工程师来说,熟悉linux的内存管理系统非常重要。物理地址:指出现在CPU地址总线上的寻址物理内存的地址信号,是地址变换的最终结果线性地址(虚拟地址):逻辑地址:出现在汇编程序中的地址cpu要将一个逻辑地址转换为物理地址,需要两步:首先CPU利用段式内存管

2015-08-27 17:13:33 485

原创 嵌入式文件系统

Linux支持多种文件系统类型,包括ext2、ext3、vfat、jffs、romfs和nfs等,为了对各类文件系统进行统一管理,linux引入了虚拟文件系统VFS,为各类文件系统提供一个统一的应用编程。根据存储设备的硬件特性、系统需求,不同的文件系统类型有不同的应用场合使用Initramfs制作根文件系统1.配置linux内核,支持initramfs2.进入制作好

2015-08-27 15:12:53 550

原创 配置内核 Makefile:1449: *** mixed implicit and normal rules. Stop.

修改前:416行 config %config: scripts_basic outputmakefile FORCE         修改后:416 行 %config: scripts_basic outputmakefile FORCE                 修改前:1449 行 / %/: prepare scripts FORCE      

2015-08-27 10:41:18 591

原创 嵌入式linux内核制作

1. make clean清除之前编译的文件2.配置内核x86: make menuconfigarm:make menuconfig ARCH = arm3.编译内核x86:make bzImagearm:make uImage ARCH = arm CROSS_COMPILE=arm-linux-

2015-08-26 20:35:12 331

原创 uboot简介及命令

printenv:查看环境变量setenv:添加、修改、删除环境变量setenv name value  添加,修改setenv name            删除saveenv  保存环境变量tftp:网络文件下载ping通后tftp c0000000 uImage  命令 地址 文件

2015-08-26 16:15:26 405

原创 Bootloader介绍

BootLoader的stage1通常包括一下步骤:1.硬件设备(CPU内部)初始化2.为加载BootLoader的stage2准备RAM空间3.拷贝BootLoader的stage2到RAM空间中4.设置好堆栈  (配置C语言环境)5.跳转到stage2的C入口点stage2通常包括以下步骤1.初始化本阶段所用到的硬件设备2.将内核映像和根文件系统映像从fla

2015-08-26 15:39:31 348

原创 内核模块参数设计

通过module_param指定模块参数,模块参数用于在加载模块时传递参数给模块module_param(name, type, perm)name:名字type:类型perm:权限#include #include MODULE_LICENSE("GPL");MODULE_AUTHOR("EmbedSky");MODULE_DESCRIPTION(

2015-08-26 15:26:44 374

原创 内核模块编译

第一步,编写模块#include #include MODULE_LICENSE("GPL");            //许可权限证明,GPL开源的协议MODULE_AUTHOR("EmbedSky");//作者MODULE_DESCRIPTION("Hello world module");//描述static int hello_init(void){

2015-08-26 11:16:37 407

原创 linux内核配置入门

1.网上下载linux源码包,我使用的是linux2.6.29进入linux2.6.29包后,使用make menuconfig 进行图形配置在ubuntu下,若不能 成功打开可以使用以下方法解决:sudo apt-get update 先更新软件sudo apt-get install build-essentialsudo apt-get ins

2015-08-25 16:39:29 309

原创 打开smb的几个步骤(非开机启动)

1.关闭linux防火墙运行命令:         /etc/init.d/iptables  stop2.重启samba服务运行命令:   /etc/init.d/smb restart3.关闭Selinux,通过执行命令setenforce permissive将其关闭

2015-08-23 15:36:17 2442

原创 Linux信号通讯编程(国嵌总结)

信号通讯流程为: ①进程A/内核选择信号 ②发送信号 ③进程B接收信号并处理 Linux系统支持的所有信号均定义在/usr/include/asm/signal.h,其中常见的信号有: ①SIGKILL:杀死进程 ②SIGSTOP:暂停进程 ③SIGCHLD:子进程停止或结束时用来通知父进程 常用到的函数有:kill函数原型:int kill

2015-08-22 17:08:02 451

转载 对串级PID和单级PID的理解(基于匿名微型六轴)

匿名四轴前段时间开源了,还出来不少好文章,转载给大家共享/******************** (C) COPYRIGHT 2014 ANO Tech **************************** 文件名 :ANO_FlyControl.cpp* 描述 :飞行控制****************************************************

2015-08-07 22:42:51 13626 1

转载 PID调节经验

Kp: 比例系数 ----- 比例带(比例度)P:输入偏差信号变化的相对值与输出信号变化的相对值之比的百分数表示  (比例系数的倒数)T:采样时间Ti: 积分时间Td: 微分时间 温度T: P=20~60%,Ti=180~600s,Td=3-180s 压力P: P=30~70%,Ti=24~180s, 液位L: P=20~80%,Ti=60~300s

2015-08-05 20:44:55 609

转载 PID算法通俗教程

首先帮大家解决一下什么是PID调节,为什么就要这样的疑惑。PID是比例,积分,微分的英文单词的首字母的简称。 下面举个例子说明一下PID,让大家有个感官的认识,。一个人闭眼走路,假设他知道自己离目的地有100米远,那么他就可以以每秒一米一步这样的速度走向目的地,100米刚刚好是100步,这是一个非常理想化的现象。假设他不知道目的地有多远,目的地可能是1000米也有可

2015-08-05 20:43:15 602

2014合泰杯的获奖项目论文

有几十个论文,写了各个比赛获奖项目的实现方法,适合给在思考项目来比赛的人寻找灵感

2015-05-28

空空如也

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

TA关注的人

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