随笔分类 -  嵌入式

摘要:中断处理如果想使用中断:1初始化A设置源头查看原理图XEINT0/kpROW0/GPN0查看芯片手册使能B设置中断控制器ThischapterdescribesthefunctionsandusageofVectoredInterruptControllerinS3C6410XRISCmicroprocessor.12.1OVERVIEWTheinterruptcontrollerintheS3C6410Xiscomposedof2VIC’s(VectoredInterruptController,ARMPrimeCellPL192)and2TZIC’s(TrustZoneInterruptC 阅读全文
posted @ 2013-07-28 16:33 retacn_yue 阅读(352) 评论(0) 推荐(1)
摘要:ARM处理器的工作模式用户模式user快速中断模式FIQ处部中断模式IRQ特权模式supervisor数据访问中止模式abort未定义指令中止模式undefined系统模式system1一上电,cpu处于supervisor(svc管理模式)2发生中断,cpu进入RIQ(外部中断模式)R13,R14切换到自已的R13,R14(R13-irq,R14-irq)跳转到0x18处执行3碰到一条机器码,cpu不认识,cpu进入undefined(未定义指令中止)模式R13,R14切换到自已的R13,R14(R13-und,R14-und)跳转到0x4执行4当程序执行swi#val,cpu会进入SVC模 阅读全文
posted @ 2013-07-28 09:32 retacn_yue 阅读(170) 评论(0) 推荐(0)
摘要:U-boot第一个开始文件arch\arm\cpu\arm1176\start.Sstart.S文件分析:/**armboot-StartupCodeforARM1176CPU-core**Copyright(c)2007 SamsungElectronics**Copyright(C)2008*GuennadiLiakhovetki,DENXSoftwareEngineering,**SeefileCREDITSforlistofpeoplewhocontributedtothis*project.**Thisprogramisfreesoftware;youcanredistributei 阅读全文
posted @ 2013-06-03 22:18 retacn_yue 阅读(452) 评论(0) 推荐(0)
摘要:Makefile文件分析##(C)Copyright2000-2010#WolfgangDenk,DENXSoftwareEngineering,wd@denx.de.##SeefileCREDITSforlistofpeoplewhocontributedtothis#project.##Thisprogramisfreesoftware;youcanredistributeitand/or#modifyitunderthetermsoftheGNUGeneralPublicLicenseas#publishedbytheFreeSoftwareFoundatio;eitherversion 阅读全文
posted @ 2013-06-01 21:44 retacn_yue 阅读(430) 评论(0) 推荐(0)
摘要:Mkconfig文件分析#!/bin/sh-e#Scripttocreateheaderfilesandlinkstoconfigure#U-Bootforaspecificboard.##Parameters:TargetArchitectureCPUBoard[VENDOR][SOC]#@$(MKCONFIG)mini6410armarm1176mini6410samsungs3c64xx#(C)2002-2006DENXSoftwareEngineering,WolfgangDenk##***定义变量APPEND=no #Default:CreatenewconfigfileBOARD_ 阅读全文
posted @ 2013-05-31 21:29 retacn_yue 阅读(585) 评论(0) 推荐(0)
摘要: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 安装minicom [root@localhost eclips_projects]# yum install minicom 使用之前先运行 [root@localhost eclips_projects]# minicom-s 选取Se. 阅读全文
posted @ 2013-05-25 20:04 retacn_yue 阅读(225) 评论(0) 推荐(0)
摘要:安装软件光盘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 导入光盘示例放入D:\c_porjects2 新建工程3 编译4 调试安装zylinhelp-->install new softwarehttp://opensource.zylin.com/zylincdt1点击debug confi 阅读全文
posted @ 2013-05-22 21:45 retacn_yue 阅读(249) 评论(0) 推荐(0)
摘要:Nandflash原理图上有data0-data7共8个引角容量为256M*8bit,所以地址位应该有28位,原理图上只有data0-data7,所以需要发出多次地址信号1命令、地址、数据复用2地址多次发出Nandflash与内存不同,不能直接读写,要先发出命令,再发出地址,再读写数据CLE为高电平data0-data7传输的是命令ALE为高电平data0-data7传输的是地址CLE和ALE两者都为低电平时,data0-data7传输的为数据nWE=0,为低电平时,表示写Nandflash读取信息查看K9F2G08U0A数据手册:Function1stCycle2ndCycleAccepta 阅读全文
posted @ 2013-05-13 21:05 retacn_yue 阅读(359) 评论(0) 推荐(0)
摘要:DDR15条地址线32k128M*2(20)=2(27)查看6410芯片手册;5.4.3DDR/MOBILEDDRSDRAMINITIALIZATIONSEQUENCE•Programmem_cmdindirect_cmdto‘2’b10’,whichmakesDRAMControllerissue‘NOP’memorycommand.•Programmem_cmdindirect_cmdto‘2’b00’,whichmakesDRAMControllerissue‘Prechargeall’memorycommand.•Programmem_cmdindirect_cmdto‘2’b11’, 阅读全文
posted @ 2013-05-11 14:19 retacn_yue 阅读(688) 评论(0) 推荐(0)
摘要:链接地址启动过程示例代码如下:start.S文件.globl_start_start:/*硬件相关设置*/ldrr0,=0x70000000orrr0,r0,#0x13mcrp15,0,r0,c15,c2,4/*关看门狗*/bltest/*位置无关*/ldrpc,=test/*位置相关*/ldrr0,=0x7E00400movr1,#0strr1,[r0]/*设置栈*/ldrsp,=8*1024blmainhalt:bhalttest:movpc,lrLed.c文件voiddelay(){volatileinti=0x1000;while(i--);}volatileinti=0;volati 阅读全文
posted @ 2013-05-05 12:40 retacn_yue 阅读(736) 评论(0) 推荐(0)
摘要:串口(UART)DIV_VAL=(PCLK/(bpsx16))−135=115200/66.5/16-1查看芯片手册:GPACON0x7F008000R/WPortAConfigurationRegister0x0000GPA0[3:0]0000=Input0001=Output0010=UARTRXD[0]0011=Reserved0100=Reserved0101=Reserved0110=Reserved0111=ExternalInterruptGroup1[0]0000GPA1[7:4]0000=Input0001=Output0010=UARTTXD[0]0011=Reserved 阅读全文
posted @ 2013-05-04 22:00 retacn_yue 阅读(853) 评论(0) 推荐(0)
摘要:12m晶振----->pll------>cpuMux多路选择器Div分频器示例代码如下:汇编实现.globlclock_initclock_init:/*1.设置LOCK_TIME*/ldrr0,=0x7E00F000/*APLL_LOCK*/ldrr1,=0x0000FFFFstrr1,[r0]strr1,[r0,#4] /*MPLL_LOCK*/strr1,[r0,#8] /*EPLL_LOCK*/#defineOTHERS 0x7e00f900@setasyncmode/*当CPU时钟!=HCLK时,要设为异步模式*/ldrr0,=OTHERSldrr1,[r0]bicr1 阅读全文
posted @ 2013-05-04 21:59 retacn_yue 阅读(202) 评论(0) 推荐(0)
摘要:用汇编点亮一个led1看原理图GPK4=0,led亮GPK4=1,led灭2怎么让GPK4输出高低电平(看芯片手册,操作寄存器实现)配置功能:输入/输出/其他设置其输出高/低电平3查看芯片手册GPK4[19:16]0000=Input 0001=Output0010=HostI/FDATA[4] 0011=HSITXREADY0100=Reserved 0101=DATA_CF[4]0110=Reserved 0111=ReservedGPKDAT在第4位写写0就对应GPK4GPK[15:0][15:0]Whentheportisconfiguredasinputport,thecorresp 阅读全文
posted @ 2013-04-14 19:50 retacn_yue 阅读(466) 评论(0) 推荐(0)
摘要:竟争与互斥程序调试1 打印调试信息 printk定义全局打印示例代码如下: #ifdef PDEBUG #define PLOG(fmt,args...) printk(KERN_DEBUG "scull:",fmt,##args) #else /*do nothing*/ #define PLOG(fmt,args...) #endif 在makefile中定义PDEBUG的值 示例代码如下: DEBUG=y ifeq($(DEBUG),y) DEBFLAGS=-O2 -g -D PDEBUG else DEBFLAGS=-O2 endif cflags+=$(DEBFL 阅读全文
posted @ 2013-04-05 11:12 retacn_yue 阅读(128) 评论(0) 推荐(0)
摘要:memdev.h文件示例代码如下: #ifndef _MEMDEV_H#define _MEMDEV_H//采用静态分配设备号#ifndef MEMDEV_MAJOR#define MEMDEV_MAJOR 260#endif#ifndef MEMDEV_NR_DEVS#define MEMDEV_NR_DEVS 2#endif#ifndef MEMEV_SIZE#define MEMDEV_SIZE 4096#endifstruct mem_dev{ char *data; unsigned long size;};#endifmemdev.c文件示例代码如下:#include ... 阅读全文
posted @ 2013-04-04 14:03 retacn_yue 阅读(258) 评论(0) 推荐(0)
摘要:字符驱动程序1 设备号 字符设备通过字符设备文件来存取 ls -l 如果输出的第一列是c标识,说明该文件是字符设备文件 设备文件项中的两个数分别为 主设备号/次设备号 设备文件与设备驱动通过主设备号建立联系 次设备号用来分辩操作的哪个设备 dev_t 用来描述设备号 在linux/types.h中声明,示例代码如下:typedef __u32 __kernel_dev_t;typedef __kernel_fd_setfd_set;typedef __kernel_dev_tdev_t; 实质为unsigned int 32位整数,高难12位为主设备号,低12位为次设备号 #主设备号 MAJO 阅读全文
posted @ 2013-04-04 10:29 retacn_yue 阅读(124) 评论(0) 推荐(0)
摘要:linux 驱动程序字符设备驱动程序网络接口驱动程序块设备驱动字符设备 按字节来访问的设备字符设备驱动用来驱动字符设备 通常实现open close read write块设备unix系统一次传输一个或多个512字节linux允许块设备传送任意数目的字节字符设备驱动和块设备驱动哪个可以随机访问网络接口通常是一个硬件设备(etho),也可以是一个;软件设备如回环接口(lo)驱动程序的安装1 模块方式2 直接编译进内核 1 将程序复制到内核当中drivers/char [root@localhost char]# cp /opt/linux/examples/hello/hello.c ./ 2 阅读全文
posted @ 2013-04-01 21:55 retacn_yue 阅读(149) 评论(0) 推荐(0)
摘要:linux 进程管理1 linux进程控制进程的四个要素:有一段程序供其执行有专用的内核空间椎栈内核中有一个tash_struct数据结构有独立的用户空间task_struct中包含了描述进程和线程的信息pid_t pid 进程号 最大10亿volatile long state 进程状态 TASK_RUNNING 准备就绪 TASK_INTERRUPTIBLE 处于等待中 等待条件为真是唤醒,信号/中断也可TASK_UNINTERRUPTIBLE 条件为真是唤醒,信号/中断不可TASK_STOPPED 进程中止执行(SIGSTOP/SIGTSTP时进入该状态) SIGCONT重... 阅读全文
posted @ 2013-03-28 20:57 retacn_yue 阅读(732) 评论(0) 推荐(0)
摘要:1 linux内存管理地址类型 物理地址 出现在cpu地址总线上的寻址物理内存的地址信号,是地址变换的最终结果 线性地址(虚拟地址)在32位cpu架构下,可以表示4g的地址空间,用16进制表示就是 0x00000000到0xffffffff 逻辑地址程序代码编译后,出现在汇编程序中的地址地址转换 cpu将一个逻辑地址转换为物理地址: 利用段式内存管理单元,将逻辑地址转换成线性地址 再利用页式内存管理单元,将线性地址转换成物理地址段式管理(16位cpu)有20位的地址线,1m的内存空间,由于寄存器只有16位,只能访问65536个存储单元,64k 因此cpu采用了内存分段的... 阅读全文
posted @ 2013-03-12 20:50 retacn_yue 阅读(186) 评论(0) 推荐(0)
摘要:嵌入式linux内核制作1 清除原有配置文件与中间文件x86 make distcleanarm make distclean2 配置内核 x86 make menuconfig arm make menuconfig ARCH=arm3 内核编译 x86 make bzImage arm make uImage ARCH=arm CROSS_COMPILE=arm-linux-根文件系统的制作1 创建目录和文件mkdir rootfscd rootfsmkdir bin dev etc lib proc sbin sys usr mnt tmp varmkdir usr/bin usr/li 阅读全文
posted @ 2013-03-06 21:39 retacn_yue 阅读(154) 评论(0) 推荐(0)