- 博客(27)
- 资源 (21)
- 收藏
- 关注
原创 我的嵌入式学习之路——笔记计划
从华清远见培训回来已经一个星期了!两个月的培训让我学到了很多,学习的量很大,东西也很杂。幸好,还有四个月的时间缓冲期(我是先去培训2个月,回到学校学习四个月之后再去培训剩下的2个月)。所以,准备花两个月的时间,把自己所学的知识好好整理一下,所以准备在51CTO上写一写我的学习之路,一来,可以复习巩固一下自己所学的;二来可以让高手指导一下我的不足! 两个月的时间,我们学习了C语言中的重难点
2013-09-07 18:23:32 1156
原创 我的项目总结
我的项目总结 经过近一个月的时间,我们的最后一个项目《基于Linux B/S架构的物联网仓库管理系统》最终得以实现。基于Cortex-A8三星s5pc100平台构建核心服务器,通过低功耗的ZigBee技术将多个仓库中CortexM0采集到的数据发送到控制平台,并利用Internel、WiFi、GPRS等手段实现物联网,最终实现物联网仓库管理系统。项目的具体时间是2月24号到3
2014-03-16 12:58:51 1586 1
原创 系统移植第五天
系统移植第五天printk 1. 总的框架,见《printk工作原理》 2. 查看console级别 cat /proc/sys/kernel/printk 3. 改console级别 echo "6" > /proc/sys/kernel/printk 4. 可以不从console输出消息,从/pr
2014-02-23 19:46:18 1016
原创 系统移植第四天
系统移植第四天内核的配置编译[1]拷贝linux-2.6.35-farsigt.tar.gz 到虚拟机[2] tar xvf linux-2.6.35-farsigt.tar.gz[3] 配置交叉编译器在Makefile中,修改如下:ARCH ?= armCROSS_COMPILE ?= arm-cortex_a8-linux-gnueabi
2014-02-23 19:45:06 984
原创 系统移植第三天
系统移植第三天 为什么有全局数据结构? 帮助消除BSS段和DATA段,因为BSS段和DATA段必须放内存中才能运行,因为我们可能出现代码直接放在Norflash上面运行,这样的话我们就需要将BSS段与DATA段和代码段分开存放运行, 这样非常麻烦,所以我们要尽可能消除BSS段和data段,即:不定义全局变量和静态局部变量,需要的全局数据放入全局数据区bootm指
2014-02-23 19:44:22 1161
原创 系统移植第二天
系统移植第二天nfs挂载根文件系统[1] 设置运行命令 setenv bootcmd tftp 20008000 zImage\;go 20008000 tftp 20008000 zImage 从虚拟机下载zImage到开发内存20008000 go 20008000 直接在内存启动内核[2] 拷贝rootfs.tar.gz到虚拟机的/sourc
2014-02-23 19:42:47 1343
原创 系统移植第一天
系统移植第一天[总体概述][1] BootLoader 1. 初始化硬件(启动操作系统需要用到的硬件) 2. 启动操作系统(内核) [2] Kernel 裸机程序,管理整个计算机上的所有软件和硬件 文件管理 进程(任务)管理 内存管理 输入输出管理 网络管理 [3] 文件系统
2014-02-23 19:41:18 1764 1
原创 一道面试题引发的思考
一道面试题引发的思考题目:以下代码结果是多少? # include using namespace std; int func(int x){ int count = 0; while(x) { count ++; x=x&(x-1); } return count;
2014-02-23 19:35:25 1411
转载 驱动第十一天
驱动第十一天/*****************************网络设备驱动***********************************//* *基础知识: *(1)linux内核中的网络子系统被设计成完全与协议无关,该思想应用于网络协议(IP、IPX及其他协议) * 和硬件协议中(以太网、令牌环等),内核与网络驱动程序之的交互,可能每次处理的是一个
2014-01-19 16:41:34 4393
原创 驱动第九天
驱动第九天1. 基本上,linux驱动中的所有设备都是挂载在总线上的。2. 字符设备的作用是将文件当作字符设备处理。【ADC指导手册】一、 原理&作用1. 作用模拟电压信号转换为数字信号(1) 原理(2) 积分型(3) 逐次比较型(4) 并行比较型二、 数据手
2014-01-19 16:03:04 1803
原创 驱动第八天
驱动第八天操作IO内存步骤:1. 申请IO内存2. 物理地址和虚拟地址映射3. 操作IO内存4. 解映射5. 释放IO内存关于private_date私有数据:我想在ioctl中获取led的结构地址,可以用下面的路径找到:1. led -> cdev2. cdev -> inode3. inode -> open4. led ->
2014-01-19 15:16:43 1044
原创 驱动第七天
驱动第七天【内存管理子系统】1. 四大地址:物理地址、虚拟地址(线性地址)和逻辑地址 物理地址:出现在CPU地址总线上 的寻址物理内存的地址信号,是地址变换的最终结果。 虚拟地址:又叫线性地址,,在32位 CPU架构下,可以表示4G的地址空间,用16进制 表示就是0x00000000到0xffffffff。 逻辑地址:程序代码
2014-01-19 15:07:49 2062
原创 驱动第六天
驱动第六天【异步通知】 实现图例: 解释: * 应用程序要收到设备发送的信号,必须要完成3步骤: * 1. 应用程序和设备绑定(把应用程序设置成设备的所有者) * 2. 应用程序通知驱动,绑定异步消息队列到设备 * 3. 发送消息到异步消息队列 * 4. 取消绑定异步消息队列和设备 【中断机制】[1]. 裸机中断执行步骤:
2014-01-14 00:18:50 1767 1
原创 驱动第五天
驱动第五天【自旋锁】 1. 原理 PV操作原理 记录一个锁定状态(就是一个共享资源,基于原子操作) 2. 适用 1. 解决多cpu之间的竞态 2. 可以解决中断程序和普通程序之间的竞态(自旋锁可以用于中断上下文) 3. 加锁时间不宜过
2014-01-11 10:51:59 1704 1
原创 驱动第四天
驱动第四天【file_operations和cdev的区别和联系】cdev是用来描述字符设备的,而file_operations是用来描述字符设备的操作的。本来cdev是可以直接用来描述字符设备的所有情况的,但是由于在C语言中,结构体是不能有函数的,即字符设备的操作。所以,我们把这个字符设备的操作单独拿出来,装在一个叫做file_operations结构体中,结构体中装的是所有应用程序要操
2014-01-11 10:10:27 895
原创 驱动第三天
驱动第三天【字符设备和块设备的区别】1. 传输速度大小:字符设备是一个字节一个字节传输的,传输速度慢;块设备是以块为单位进行操作的,传输速度快。2. 响应速度:字符设备响应速度快,块设备必须经过系统的快速缓冲,所以响应速度慢。3. 访问顺序:字符设备只能按顺序依次访问设备,块设备则可以随机访问设备。字符设备和块设备之间没有明显的界限,它们之间仅限于驱动与内核的接口不同。
2014-01-04 20:57:29 1652 1
原创 驱动第二天
驱动第二天[1] 划分模块(模块化的编程思想) 把大的任务划分成功能比较独立的模块,模块一般都包含三大部分: 1. 初始化(函数) 2. 功能 3. 退出(函数) [2] 使用面向对象的编程思想实现模块 一般一个模块就是实现一类对象,面向对象的编程思想,需要: 1. 描述对象 1. 静态特征描述(类/结
2014-01-04 20:48:27 1178
原创 第一天
1. 在《C语言深度》中,我们学习了关于冒泡法和选择法进行排序。现在就用我们学到的知识对一个学生信息进行操作,实现简单的学生信息管理系统。我们使用简单的结构体,结构体中有四个成员:姓名(name)、性别(sex)、年龄(age)、分数(score),然后用冒泡法将学生年龄按照从大到小排列,用选择法将学生成绩按照从小到大排列,最后实现一个简单的查找函search(),实现学生姓名的查找,具体的实
2013-09-10 20:34:05 485
原创 第三天
1. 在位运算和逻辑运算中,我们要知道,当某个变量进行位运算之后,该变量本身不会被修改,只有当该变量被再次赋值之后,该变量的值才会改变。有符号数的移位补的是符号位。对于逻辑运算的短路性大家可以看看下面的实例。#include int main(){ int a = 7,b= 9,c = 0; //逻辑与&& 的短路特性 printf("a > b &&
2013-09-07 23:00:06 653
原创 arm-linux-gcc环境变量安装
一、profile bashrc bash_profile 的区别和联系【转】/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置./etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.~/.bash_prof
2013-09-07 19:36:53 1013
原创 Java面试宝典2013版
项目介绍在进行技术面试前,提醒大家,必须要准备好项目介绍,即需要准备好你的简历中列的所有项目的项目介绍!面试时关于项目,面试官常见的问题及回答(以银行柜台系统为例): 你给我简要介绍一下银行柜台系统?1、简易银行柜台系统是模拟银行柜台的基本功能而做的一个系统。2、系统分前台和后台部分,前台部分是银行柜台人员操作的,包括:注册登录模块、开销户模块、帐号
2013-09-07 19:27:22 2179
原创 关于虚拟机工具VMwareTools
1. 安装VMwareTools的优点a.安装虚拟机工具可以让虚拟机中的系统实现全屏b.可以实现虚拟系统和主机系统的文件共享c.可在主机系统和虚拟系统之间进行复制和粘贴d.在主机和虚拟机之间操作时,不必切换鼠标其实虚拟机工具很多,大家可以百度查查它的其他功能,这里就不一一列举了2. 安装的详细步骤1.点击虚拟机- 安装虚拟机工具2.虚拟机桌面上就会出现一个虚
2013-09-07 19:21:59 665
原创 Linux静态IP设置(tim)-v2.0
这份资料是我们华清远见嵌入式培训讲授C语言的文老师发给我们的,感觉挺好的,现在转发给大家。设定 IP$sudo vi /etc/network/interfacesauto loiface lo inet loopback添加以下内容auto eth0iface eth0 inet staticaddress 192.168.0.221填写自己检查未
2013-09-07 19:20:10 794
原创 环境搭建
一、系统安装我使用的是VMware8下的ubuntu12.04,这是培训老师说的,12.04相对来说,比较新,而且是5年长期支持版,不容易过时。对于系统的安装,我不想说很多,只是希望大家主义这几点: 1.虚拟机的卸载要注意,要卸载干净,不然,下次会安装失败!至于怎么卸载,百度上很多。2.安装好系统之后,首先要装好虚拟机工具,具体的安装方法见我的另外一篇博客《关于Vmwar
2013-09-07 19:04:49 756 1
原创 第二天
1. C语言的存储类型有这四种:auto,register,,extern和static类型,其中,在缺省的情况下,编译器默认的所有变量都是auto的。而regeister寄存器则是最快的,但是由于其数量很少,所以弥足珍贵。extern是申明外部变量和函数的。static比较复杂,也比较重要,会专门讲解。这里为了测试register和auto的效率,我们做了一下实验。#inc
2013-09-07 18:57:30 582
原创 第一天
首先声明一下,在我们写的程序中,会使用到一个头文件# include 因为,在linux系统编程的时候,会用到很多头文件,为此,我用一个头文件全部包含在一起,头文件内容如下:# ifndef _OK_# define _OK_ # include # include # include # include # include # include # in
2013-09-07 18:46:42 669
我的嵌入式Linux应用开发之路(第二版)
2013-12-31
linux的进程线程编程(高清书签版)
2013-09-24
基于ubuntu的嵌入式环境设置
2013-04-13
超想3000TC单片机开发箱配套源代码
2013-01-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人