
嵌入式
文章平均质量分 72
retacn
这个作者很懒,什么都没留下…
展开
-
字符设备驱动学习笔记---并发
linux中处理并发的几种解决方法:信号量和互斥体 自旋锁 原子操作 a 原子操作: atomic_t 定义在中 常用操作: void atomic_set(atomic_t *v,int i); atomic_t v=ATMIC_INIT(0);//初始化原子变量 int atomic_read(atomic_t *v);/原创 2013-12-11 09:39:44 · 826 阅读 · 0 评论 -
文件I/O编程学习笔记一(基于linux系统的文件编程)
文件I/O编程1 基于linux系统的文件编程 创建文件int creat(const char * filename,mode_t mode)filename:要创建的文件名mode:创建模式常见模式:S_IRUSR 可读 4S_IWUSR 可写 2S_IXUSR 可执行 1S_IRWXU 可读、写、执行返回值为文件描述符,变化范围为0原创 2013-01-26 19:55:02 · 496 阅读 · 0 评论 -
uboot start.S文件分析
U-boot 第一个开始文件arch\arm\cpu\arm1176\start.Sstart.S文件分析:/* * armboot - Startup Code for ARM1176 CPU-core * * Copyright (c) 2007 Samsung Electronics * * Copyright (C) 2008 * Guennadi Lia转载 2013-06-03 22:18:33 · 965 阅读 · 0 评论 -
u-boot Makefile 文件分析
Makefile 文件分析## (C) Copyright 2000-2010# Wolfgang Denk, DENX Software Engineering, wd@denx.de.## See file CREDITS for list of people who contributed to this# project.## This program原创 2013-06-01 21:44:07 · 729 阅读 · 0 评论 -
u-boot mkconfig文件分析
Mkconfig文件分析 #!/bin/sh -e# Script to create header files and links to configure# U-Boot for a specific board.## Parameters: Target Architecture CPU Board [VENDOR] [SOC]#@$(MK原创 2013-05-31 21:29:44 · 626 阅读 · 0 评论 -
openJTAG学习笔记二
fedora 下使用openJTAG1 安装驱动#[root@localhost eclips_projects]# cp /home/retacn/Desktop/50-ftdi.rules /etc/udev/rules.d/ //查看usb设备 [root@localhost eclips_projects]# ls /dev/ttyUSB* -l 安装min原创 2013-05-25 20:04:45 · 1081 阅读 · 0 评论 -
DDR学习笔记
DDR15条地址线32k 128M*2(20)=2(27)查看6410芯片手册;5.4.3 DDR/MOBILE DDR SDRAM INITIALIZATION SEQUENCE • Program mem_cmd in direct_cmd to ‘2’b10’, which makes DRAM Controller issue ‘NOP’ m原创 2013-05-11 14:19:50 · 1906 阅读 · 0 评论 -
nand flash学习笔记一
Nand flash原理图上有data0-data7 共8个引角容量为256M*8bit ,所以地址位应该有28位,原理图上只有data0-data7,所以需要发出多次地址信号1命令、地址、数据复用2地址多次发出Nand flash与内存不同,不能直接读写,要先发出命令,再发出地址,再读写数据CLE 为高电平 data0-data7传输的是命令ALE 为高电平原创 2013-05-13 21:05:34 · 954 阅读 · 0 评论 -
openJTAG学习笔记一
安装软件光盘Windows\install目录下的01.OpenOCD with GUI setup.exe02.yagarto-bu-2.18_gcc-4.2.2-c-c++_nl-1.16.0_gi-6.8.50_20080408.exe03.yagarto-tools-20070303-setup.exejre7使用eclipse调试led程序1原创 2013-05-22 21:45:50 · 1092 阅读 · 0 评论 -
原理图学习笔记二
原创 2013-02-21 21:54:18 · 460 阅读 · 0 评论 -
原理图学习笔记一
画个草图也挺过瘾原创 2013-02-17 22:24:49 · 702 阅读 · 2 评论 -
链接地址学习笔记
链接地址启动过程示例代码如下:start.S 文件.globl _start_start:/*硬件相关设置*/ldr r0,=0x70000000orr r0,r0,#0x13mcr p15,0,r0,c15,c2,4/*关看门狗*/ bl test /*位置无关*/ldr pc, =test /*位置相关原创 2013-05-05 12:40:12 · 1060 阅读 · 0 评论 -
UART学习笔记
串口(UART)DIV_VAL = (PCLK / (bps x 16 ) ) −1 35 = 115200/66.5/16-1查看芯片手册:GPACON 0x7F008000 R/W Port A Configuration Register 0x0000 GPA0 [3:0] 0000 = Input 0001 = Out原创 2013-05-04 22:00:00 · 1186 阅读 · 0 评论 -
中断处理学习笔记
中断处理如果想使用中断:1 初始化 A设置源头 查看原理图XEINT0/kpROW0/GPN0查看芯片手册使能B 设置中断控制器This chapter describes the functions and usage ofVectored Interrupt Controller in S3C6410X R原创 2013-07-28 16:33:46 · 956 阅读 · 0 评论 -
异常处理学习笔记
ARM处理器的工作模式用户模式 user快速中断模式 FIQ处部中断模式 IRQ特权模式supervisor数据访问中止模式 abort未定义指令中止模式 undefined系统模式 system1 一上电,cpu处于supervisor (svc管理模式)2 发生中断,cpu进入RIQ(外部中断模式) R13,R14切换到自已的R13,R14(R1原创 2013-07-28 09:32:21 · 552 阅读 · 0 评论 -
嵌入式linux应用开发完全手册学习笔记二(嵌入式linux开发环境搭建)
嵌入式linux开发环境搭建硬件环境构建主机与目标板结合的交叉开发模式在主机编辑、编译软件,然后在目标板上运行和验证程序目标板s3c6410(下周入手)进行嵌入式linux开发时一般步骤1 在主机上编译bootloader通过jtag烧入开发板 通常选用具有串口传输、网络传输、烧写flash功能的bootloader2 在主机上编译原创 2013-01-16 20:55:58 · 3012 阅读 · 0 评论 -
字符设备驱动学习笔记----查询方式取得按键值
3 第二个驱动程序:查询方式取得按键值 (在android 环境下测试) 写出驱动框架 file_operation结构 入口函数注册到内核中 出品函数 修饰出口/入口函数 给sysfs添加更多信息,通过udev自动创建设备节点 创建class 创建device 示例代码如下: #include #include原创 2013-12-09 13:28:15 · 792 阅读 · 0 评论 -
字符设备驱动学习笔记--按键驱动深化:poll或select操作
在规定时间内没有操作,返回在file_operation中添加poll方法编写poll函数static unsigned int forth_drv_poll(struct file *file, poll_table *wait){ unsigned int mask=0; poll_wait(file, &button_waitq, wai原创 2013-12-11 09:38:37 · 748 阅读 · 0 评论 -
字符设备驱动学习笔记--点灯
2 第一个驱动程序:点灯 编写驱动函数 1)定义file_operation结构体,填充(用户定义什么接口,结构体对应有什么成员) 2)在内核中注册设备 早期的办法:register_chrdev(unsigned int major,const char *name,struct file_operations *fops) 3)驱动的入口函数 int firs原创 2013-12-05 11:25:16 · 2428 阅读 · 0 评论 -
字符设备驱动学习笔记----异步通知机制
按键驱动深化:异步通知机制 进程间发送信号 示例代码如下:#include #include //信号处理函数void my_signal_fun(int signum){static int count=1;printf("signal =%d ,%d times\n",signum,++count);}int main(int argc,原创 2013-12-11 09:40:33 · 736 阅读 · 0 评论 -
字符设备驱动学习笔记-----中断方式取得按键值
第三个驱动程序:中断方式取得按键值单片机下实现中断 a 当按键按下 b cpu发生中断,跳到异常向量的入口执行 c bl b bx 到函数:保存被中断的现场 执行中断处理函数 恢复现场 处理中断 分辨是哪一个中断原创 2013-12-09 13:29:09 · 1290 阅读 · 0 评论 -
GPIO学习笔记
用汇编点亮一个led 1 看原理图 GPK4=0 ,led亮 GPK4=1,led灭 2 怎么让GPK4输出高低电平 (看芯片手册,操作寄存器实现) 配置功能:输入/输出/其他 设置其输出高/低电平 3 查看芯片手册 GPK4 [19:16]0000 = Input 0001 = Output0010 =原创 2013-04-14 19:50:42 · 1647 阅读 · 0 评论 -
uboot启动内核学习笔记
=============================================================================== uboot启动内核 ===============================================================================命令行中输入print 得到信息b原创 2013-11-29 12:38:55 · 756 阅读 · 0 评论 -
uboot自定认命令学习笔记
================================================================================================ uboot的命令实现======================================================================================原创 2013-11-15 12:24:28 · 2582 阅读 · 0 评论 -
构建根文件系统学习笔记
uboot:启动内核内核 :启动应用程序 ||构建: 根文件系统中挂载完根文件系统后运行的函数为:init/main.c中init_post()部分代码如下:static noinline int init_post(void){/* need to finish all async __init code before freeing the原创 2013-11-18 13:06:10 · 1625 阅读 · 0 评论 -
内核启动学习笔记
内核编译:1 make menuconfig 生成.config文件和autoconf.h .config会生成auto.conf 2 make查看配置项:CONFIG_DM9000定义的位置[root@localhost linux-2.6.38]# grep "CONFIG_DM9000" * -nR 1 c源码中定义 a原创 2013-11-15 12:27:13 · 1643 阅读 · 0 评论 -
uboot分析第一阶段学习笔记
############################################## makefile文件##############################################分析makefile得到的第一个文件arch/arm/cpu/arm1176/start.s mini6410_noUSB_config \mini6410_原创 2013-11-15 12:21:12 · 1632 阅读 · 0 评论 -
uboot分析第二阶段学习笔记
===================================================================== 第二阶段工作 1 从FLASH读出内核 2 启动内核 ======================================================================第一种方法是从nand启动 先执行nand_原创 2013-11-15 12:23:13 · 1620 阅读 · 0 评论 -
系统时钟学习笔记
12m晶振 ----->pll ------> cpuMux 多路选择器Div 分频器示例代码如下:汇编实现.globl clock_initclock_init:/* 1.设置LOCK_TIME */ldr r0, =0x7E00F000 /* APLL_LOCK */ldr r1, =0x0000FFFFstr r1, [r0]原创 2013-05-04 21:59:25 · 2744 阅读 · 0 评论 -
linux常用命令
linux常用命令安中文显示包(server目录) 1 挂载dvd 光驱 cd /mnt mkdir cdrom mount /dev/cdrom /mnt/cdrom 2 rpm -ivh *chinese*.rpm --nodeps --force安装中文输入法 server目录下的 scim-libs-1.4.4-41原创 2012-12-31 10:18:10 · 1503 阅读 · 0 评论 -
基础编程学习笔记二(makefile工程管理)
makefile工程管理makefile文件描述了整个工程的编译,连接等规则规则如何生成一个或多个目标文件targets(目标):prerequisites(依赖)command(路径)示例代码:test34:test34.o test33.o test31.o(tab) gcc$~ -o $@ 第一条语句为最终目标m原创 2013-01-25 20:11:57 · 769 阅读 · 0 评论 -
文件I/O编程学习笔记三(linux 时间编程)
linux 时间编程时间类型 coordinated universal time世界标准时间calendar time日历时间时间获取#include time_t time(time_t *tloc)从1970年1月1日0时到现在经历的秒数时间转换日历转化为格林威治标准时间struct tm *gmtime(const t原创 2013-01-27 17:56:51 · 378 阅读 · 0 评论 -
文件I/O编程学习笔记二(c语言库函数访问文件)
c语言库函数访问文件库函数是独立于操作系统平台,可移植性强文件的创建和打开FILE *fopen(const char *filename,const char *mode)filename:文件名mode:打开模式常见的打开方式:r,rb 只读w,wb 只写,如果文件不存在就创建a,ab 追加,如果文件不存在就创建r+,r+b,rb原创 2013-01-27 17:29:26 · 455 阅读 · 0 评论 -
基础编程学习笔记一(程序的编译与调试)
程序的编译与调试gcc (gnu c compiler)gcc所支持的后缀名.c c原始程序.C/.cc/.cxx c++原始程序.i 已经预处理的c原始程序.ii 已经预处理的c++原始程序.s/.S 汇编语言原始程序.h 预处理文件.o 目标文件.a/.so 编译后的库文件gcc的编译流程预处理编译汇编链接原创 2013-01-25 19:40:52 · 434 阅读 · 0 评论 -
嵌入式linux应用开发完全手册学习笔记三(windows、linux下工具使用)
windows\linux环境下相关工具、命令的使用windows环境下的工具source insight代码阅读编辑工具,发现本人桌面上居然有3.5版本,这可能是在合肥MTK培训时装的。使用source insight3.5以内核源码为例1 创建一个source insight工程 options-->document options-->docu原创 2013-01-21 20:45:58 · 1205 阅读 · 0 评论 -
shell编程学习笔记四
shell函数定义函数定义函数的格式function 函数名(){ 命令}在脚本中使用函数示例代码如下:hello(){echo "hello there today date is `date`"}在脚本中使用函数示例代码如下:#!/bin/sh#test20#在脚本中使用函数hel原创 2013-01-04 20:34:11 · 380 阅读 · 0 评论 -
shell编程学习笔记二
流程控制退出状态有四种退出状态最后命令退出状态$?控制次序命令$$ ||处理shell脚步本退出或shell退出及相就退出状态或函数返回码退出当前进程exit nn为数字流控制if then else格式为:if 条件1 then 命令1elif 条件2 then 命令2 else 命令3原创 2013-01-03 18:26:24 · 475 阅读 · 0 评论 -
shell编程学习笔记三
case 语句语句格式case "$variable" in 模式1) 命令1 ... ;; 模式2) 命令2 ... ;;esac模式部分可使用通配符* 任意字符? 任意单个字符[..] 类或范围中任意字符简单的case语句示例代码如下:#!/原创 2013-01-03 21:03:16 · 425 阅读 · 0 评论 -
shell编程学习笔记一
linux角本编程文件的安全与权限 [root@localhost ~]# ls -l总计 48 #所有文件所占空间 -rw------- 1 root root 913 12-26 13:50 anaconda-ks.cfg-rw-r--r-- 1 root root 26586 12-26 13:50 install.log-原创 2012-12-31 21:57:27 · 407 阅读 · 0 评论 -
tftp服务器安装与配置
tftp服务器trivial file transfer protocol 简单文件传输协议tftp有三种传输模式: netASCII 8位ASSCII 八位组模式 邮件模式检查是否安装[root@localhost Server]# rpm -qa | grep tftp-servertftp-server-0.49-2原创 2012-12-31 12:59:49 · 1330 阅读 · 0 评论