
TQ2440
文章平均质量分 93
学习tq2440的总结
习惯就好zz
一个无趣的人
展开
-
九、Linux远程登陆
1、为什么需要远程登录 2、登录前提-1从windows能够Ping通Linux 登录前提-2关闭Linux防火墙运行命令:/etc/init.d/iptables stop 3、登陆的工具 putty-SSH: ①填入IP地址(linux的地址)②选择SSH③单击打开运行,选择“是” vnc1. 从RHEL6安装光盘pac原创 2017-01-11 21:42:47 · 138 阅读 · 0 评论 -
USB驱动程序设计
1.USB驱动模型①USB HOST控制器驱动②USBhexin③USB客户端驱动设备4个层次:设备(device)、配置(Config)、接口(Interface)、端点(Endpoint).一个接口就是一个基本功能。如:MP4的视频、音频。USB设备包括配置(configuration)、接口(interface)和端点(endpoint),一个USB设备驱原创 2017-08-15 09:09:16 · 323 阅读 · 0 评论 -
八、Linux网络配置
Vmware网络设置VMWare提供了三种网络工作模式供用户选择,它们分别是:1. bridged(桥接模式): 如果网络中能提供多个IP地址,则使用桥接方式 2. NAT(网络地址转换模式): 如果网络中只能提供一个IP地址,则使用NAT方式 3. host-only(主机模式):如果安装虚拟机的主机没有连接任何外部网络,则使用主机模式 3. host-only原创 2017-01-11 21:42:44 · 249 阅读 · 0 评论 -
MTD系统架构和yaffs2使用、Nandflash驱动设计
一、MTD系统架构 1.MTD设备体验 FLASH在嵌入式系统中是必不可少的,它是bootloader、linux内核和文件系统的最佳载体。 在Linux内核中引入了MTD子系统为NORFLASH和NAND FLASH设备提供统一的接口,从而使得FLASH驱动的设计大为简化。 cat /proc/mtd原创 2017-08-15 09:08:36 · 1539 阅读 · 0 评论 -
linux-usb软件系统架构
1.软件系统架构USB主控制器,芯片里面自带了得。为了让USB主控制器运行,所有有USB主控制器驱动。USB核心,内核提供好的USB协议之类的。USB设备驱动是针对插到接口的设备去工作的软件。主机插得是HOST接口开发板插的是SLAVE接口Gadget驱动:让USB设备工作成特殊的状态(网卡,串口等)2.USB-MassStorage驱动体验在tq244原创 2017-08-15 09:09:11 · 309 阅读 · 0 评论 -
SPI总线介绍和裸机编程分析
一、SPI总线结构SPI(Serial Peripheral Interface)串行外设接口,是一种高速的,全双工,同步的通信总线。采用主从模式(Master Slave)架构,支持多个slave,一般仅支持单Master。SPI接口共有4根信号线,分别是:设备选择线(SS)、时钟线(SCK)、串行输出数据线(MOSI)、串行输入数据线(MISO)。二、数据传输过程主原创 2017-08-15 09:08:51 · 353 阅读 · 0 评论 -
嵌入式学习网站推荐
转到这里来是为了自己日后好找:-)2. The First Stop for the Latest ICs and Components非常好的关于微处理器,DSP,可以编程控制器资讯的网站,更新非常快。强烈推荐一些领导级别的人常去,了解行业动态!http://www.eeproductcenter.com/ - 外文3. Programmers Heaven - Assembler prog原创 2017-08-15 09:10:52 · 1782 阅读 · 1 评论 -
十、Windows与Linux文件互享
1.前提-1 从windows能够Ping通Linux1.前提-2 关闭Linux防火墙运行命令:/etc/init.d/iptables stop1.WinSCP ①互ping通 ②选协议 ③填入IP ④连接2. Samba服务器 1.安装samba服务器rpm –ivh /mnt/Packages/samba-3.5.10-125.el6.i68原创 2017-01-11 21:42:56 · 266 阅读 · 0 评论 -
十二、Linux在线升级yum
RPM特点优点:1. 安装过程很简单。缺点:1. 需要自己四处去找和系统版本对应的RPM包2. 安装过程中需要解决包的依赖问题(通过tftp包演示)。软件包仓库在Linux系统中使用yum命令就能够从软件包仓库中取到相应的软件包并安装。软件包仓库可以分为付费仓库和免费仓库两种。 软件包仓库源在使用yum之前,我们需要首先将仓库的地址等信息存放在一原创 2017-01-11 21:43:09 · 165 阅读 · 0 评论 -
SPI驱动程序设计
一、SPI驱动子系统架构m25p80.c: static int __devinit m25p_probe(struct spi_device *spi) { struct flash_platform_data *data; struct m25p原创 2017-08-15 09:08:58 · 891 阅读 · 0 评论 -
十一、NFS与TFTP服务器
为什么?前面介绍的Linux和windows之间的通讯途径已经够多了,为什么还要介绍tftp和NFS? 可用于宿主机和目标机之间的交叉编译开发交叉开发 嵌入式系统开发多采用交叉开发模式,其中产生嵌入式软件的平台称为宿主机,通常为PC电脑,运行嵌入式软件的平台称为目标机。宿主机一般通过宿主机一般通过网络,USB,JTAG等方式将软件下载到目标机。 1. tftp服原创 2017-01-11 21:43:06 · 197 阅读 · 0 评论 -
SPI总线之CPOL CPHA(转)
【背景】 最近在看关于Silicon Labs的C8051F347的某个驱动中,关于SPI部分初始化的代码,看到其对于SPI的设置为CPOL=1,CPHA=0,对于CPOL及CPHA的含义不了解,想要搞懂,这两个参数到底是什么意思,以及为何要这么设置。所以才去找了SPI的极性和相位的相关资料,整理如下。 【SPI基础知识简介】 设备与设备原创 2017-01-11 21:41:42 · 300 阅读 · 0 评论 -
SPI子系统
一、SPI子系统模型三个组成部分:SPI核心:连通了SPI客户驱动、SPI主控制器驱动SPI控制器驱动:驱动芯片中的SPI控制器SPI的FLASH(客户驱动)二、SPI控制器驱动分析 static int __init s3c24xx_spi_probe(struct platform_device *pdev)原创 2017-08-15 09:08:54 · 362 阅读 · 0 评论 -
SPI协议及其工作原理浅析
说明.文章摘自:SPI协议及其工作原理浅析 http://bbs.chinaunix.net/thread-1916003-1-1.html一、概述. SPI, Serial Perripheral Interface, 串行外围设备接口, 是 Motorola 公司推出的一种同步串行接口技术. SPI 总线在物理上是通过接在外围设备微控制器(PICmicro) 上面的微处理控原创 2017-01-11 21:41:45 · 249 阅读 · 0 评论 -
I2C学习
一、I2C总线介绍1.1 I2C电气特性 I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线只有两根双向信号线。 SDA: Serial Data Line-数据线 SCL :Serial Clock-时钟线 1.2 总线寻址原创 2017-08-15 09:08:39 · 318 阅读 · 0 评论 -
USB协议分析
1.USB设备逻辑结构在USB设备的逻辑组织中,包含设备、配置、接口和端点4个层次。设备通常有一个或多个配置,配置通常有一个或多个接口,接口有零或多个端点。1.1 设备逻辑结构每个USB设备都可以包含一个或多个配置,不同的配置使设备表现出不同的功能组合,配置由多个接口组成。在USB协议中,接口代表一个基本的功能,一个功能复杂的USB设备可以具有多个接口,而接口是端点的汇集一个U原创 2017-08-15 09:09:07 · 678 阅读 · 0 评论 -
USB总线介绍
1.USB发展史USB(Universal Serial Bus ),通用串行总线,是一种外部总线标准,用于规范电脑与外部设备的连接和通讯。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的,自1996年推出后,已成功替代串口和并口,成为当今个人电脑和大量智能设备的必配接口之一。USB 1.0出现在1996年的,速度只有1.5Mb/s。1998年升级为原创 2017-08-15 09:09:03 · 926 阅读 · 0 评论 -
I2C用户态驱动设计
一、用户态驱动模型1.1 I2C通用驱动代码i2c_dev_init: static int __init i2c_dev_init(void) { int res; printk(KERN_INFO "i2c /dev entries dr原创 2017-08-15 09:08:43 · 330 阅读 · 0 评论 -
五、Linux快速体验
1、系统登陆: other>>UserName>>root>>1234562、操作界面:3、系统结构:/:根目录 /bin:(二进制)可执行程序目录 /boot: 启动文件目录/dev:设备文件 /etc:配置文件 /home:用户目录 /lib:库文件目录/r原创 2017-01-11 21:42:15 · 243 阅读 · 0 评论 -
六、Linux命令详解
第一组、用户管理类命令1.添加用户格式:useradd [选项] 用户名范例:useradd david -添加名字为david的用户,当用户创建成功后,会在/home/ 目录下生成与用户名同名的目录。2.删除用户格式:userdel [选项] [用户名]范例:userdel –r david删除名字为david的用户,“-r”选项会使/home目录下的原创 2017-01-11 21:42:25 · 460 阅读 · 0 评论 -
I2C自编设备驱动设计
一、自编设备驱动模型at24.c: static int __init at24_init(void) { io_limit = rounddown_pow_of_two(io_limit); return i2c_add_driver(&at24_driver);原创 2017-08-15 09:08:47 · 268 阅读 · 0 评论 -
七、Linux文本编辑器
Linux提供了一系列功能强大的编辑器,如Vi和Emacs。Vi 是Linux系统的第一个全屏幕交互式编辑器,从诞生到现在一直得到广大用户青睐。Vim 则是Vi的升级版本,它不仅兼容Vi的所有指令,而且还有一些新的特性在里面。Vim 有3种工作模式,分别是命令行模式、插入模式、底行模式。1. vim hello.c2. 键入i进入插入模式3. 编辑4. 键入[ESC]退原创 2017-01-11 21:42:34 · 183 阅读 · 0 评论 -
内存初始化
一、2440内存初始化1.2440地址空间1.1 s3c2440芯片地址线 总共27根地址线--> Addr[0:26] -->只有访问128M的外设空间--> 但有8个片选 --> 128MB*8 = 1024MB的内存空间1.2片选信号为了扩大外设的访问范围,S3c2440芯片又提供了8个片选信号nGCS0~nGCS7。当某个片选信号nGCSx有效时,则可以通原创 2017-08-15 09:03:52 · 1562 阅读 · 0 评论 -
串口驱动分析-打开设备
一、串口驱动程序结构 用户程序通过调用open /dev/... 来实现对串口的打开,其中要通过tty子系统对串口驱动xx_operations的open操作。 samsun.c>>moudle_init(s3c24xx_serial_modinit);>>uart_register_driver(&s3c24xx_uart_drv); int uart_reg原创 2017-08-15 09:07:20 · 372 阅读 · 0 评论 -
数据线和地址线的问题
20根地址线16根数据线的CPU的寻址范围里面为什么按字节的范围是1M?1M的储存单元中每个单元里面是存有16位的2进制码吗?这里很困惑::?? 答: 地址线的数目决定寻址的字节数,数据线决定存储字的位数。 20根地址线从0000 0000 0000 0000 0000到1111 1111 1111 1111 1111我们知道变化原创 2017-08-15 09:03:47 · 7680 阅读 · 1 评论 -
jlink烧录2440.jflash出错
J-Flash ARM v4.02d的log提示:- Connecting ... - ERROR: Bad JTAG communication: Write to IR: Expected 0x1, got 0xf (TAP Command : 15) @ Off 0x1979. - ERROR: Failed to connect - ERROR: Could n原创 2017-01-11 21:43:12 · 1489 阅读 · 0 评论 -
BSS初始化
1、BSS段的作用初始化的全局变量:数据段局部变量: 栈malloc:堆未初始化的全局变量:bss段bss.c #include stdio.h> int year; int main() {原创 2017-08-15 09:04:05 · 536 阅读 · 0 评论 -
u-boot新手入门
一、U-BOOT命令详解 1.1 帮助命令 # help 尽管UBOOT提供了丰富的命令集,但不同的开发板所支持的命令却不一样(可配置),help 命令可用于察看当前单板所支持的命令。 1.2 查看环境变量 printenv:查看环境变量 # printenv 1.3 修改环境变量 setenv 添加、修改、删除环境变量 #setenv myboard原创 2017-08-15 09:06:18 · 307 阅读 · 0 评论 -
栈初始化
一、概念解析1.1 概念-栈栈是一种具有后进先出性质的数据组织方式,也就是说后存放的先取出,先存放的后取出。栈底是第一个进栈的数据所处的位置,栈顶是最后一个进栈的数据所处的位置。1.2 概念-满/空栈根据SP指针指向的位置,栈可以分为满栈和空栈。1. 满栈:当堆栈指针SP总是指向最后压入堆栈的数据2. 空栈:当堆栈指针SP总是指向下一个将要放入数据的空位置ARM原创 2017-08-15 09:04:00 · 1826 阅读 · 0 评论 -
串口驱动分析-发送
一、TTY数据发送调用关系 这个上一篇open有点相似: 从samsung.c>>uart_register_driver>>tty_register_driver>注册>tty_fops(file_operations结构)>>tty_write: static ssize_t tty_write(struct file *file, const char __原创 2017-08-15 09:07:23 · 280 阅读 · 0 评论 -
连接器脚本
2.1 链接器脚本-段一个可执行程序通常是由:代码段,数据段,bss段构成的。同样,在用于链接这个程序的链接器脚本中,就会反应出这几个段的信息。 连接器脚本的编写(led.lds):SECTIONS {. = 0x30008000; >>.是当前位置 0x30008000是地址.说明程序从30008000开始运行. = ALIGN(4);原创 2017-01-11 21:43:27 · 165 阅读 · 0 评论 -
十五、Linux编译器Gcc
1.1 Gcc特点Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作之一。Gcc可以在多种硬体平台上编译出可执行程序,其执行效率与一般的编译器相比平均效率要高20%~30%。 1.2 Gcc基本用法Gcc最基本的用法是∶gcc [options] filenamesoptions:编译器所需要的编译选项filena原创 2017-01-11 21:43:21 · 165 阅读 · 0 评论 -
十九、安装Linux系统到开发板
2440开发板系统安装步骤 安装辅助程序>>JTAG>>开发板的Nor Flash>>USB下载线(嵌入式Linux系统)>>开发板Nand Flash1.Bootloader2.Linux内核3.文件系统安装准备1-硬件连接 1.Flash选择开关位于nor flash2.串口线已经连接到PC3.USB下载线已经连接到PC4.连接好开发板电源线,并关闭原创 2017-01-11 21:43:24 · 400 阅读 · 0 评论 -
代码搬移不可少
1、ARM启动流程回顾2440:启动时,Nand Flash自动拷贝4k的内容到stepping stone中(SRAM)。利用4k内存代码,拷贝剩余的启动代码从nand flash到内存。6410:4k变8k210:BL0三星固定烧好了的,Nand flash(bootload) -->iRam(96kb)再剩下的拷贝进内存。2、代码搬移编程1.起点sRam(原创 2017-08-15 09:03:55 · 327 阅读 · 0 评论 -
Eclipse集成开发环境
1、集成开发环境2、准备工作从 sd/nor flash启动 格式化nand flash 硬件连接:1、Jlink连接2、串口连接3、nand启动3、安装gdb servertar xvzf arm-linux-gdb-7.5.tar.gz./build-all出错情况:configure: error: no termcap library fou原创 2017-01-11 21:43:39 · 271 阅读 · 0 评论 -
什么是GPIO?
原文http://blog.youkuaiyun.com/sraing/article/details/5284722一、什么是GPIO?GPIO,英文全称为General-Purpose IO ports,也就是通用IO口。嵌入式系统中常常有数量众多,但是结构却比较简单的外部设备/电路,对这些设备/电路有的需要CPU为之提供控制手段,有的则需要被CPU用作输入信号。而且,许多这样的设备/电路只要求一原创 2017-08-15 09:04:21 · 15378 阅读 · 0 评论 -
MMU内容学习
一、MMU功能解析1.1虚拟地址的使用p1.c #include stdio.h> int a = 1; void main() { while(1)原创 2017-08-15 09:04:17 · 357 阅读 · 0 评论 -
交叉编译gdb遇到no termcap library found的解决方法
configure: error: no termcap library foundmake[1]: *** [configure-gdb] Error 1make[1]: Leaving directory `/home/doctmp/part1/lesson1/ARM-tools/arm-linux-gdb-7.5/gdb-7.5'make: *** [all] Error 2原创 2017-01-11 21:43:37 · 1956 阅读 · 0 评论 -
我从内部看ARM
1、ARM家族大检阅①芯片:6410,210,2440 (三星出的)②ARM核:A8,ARM11,ARM9③指令架构:armv7,armv6,armv4芯片中包含了一个ARM核:2440(ARM9)---->armv4(采用的指令架构)6410(ARM11)---->armv6210(A8)---->armv72、ARM核演变图原创 2017-01-11 21:43:49 · 174 阅读 · 0 评论 -
C与汇编混合编程
一、为什么需要混合编程①汇编语言:执行效率高;编写繁琐②C语言:可读性强,移植性好,调试方便什么时候需要使用汇编:1. 执行效率2. 能够更直接地控制处理器二、混合编程类型1.汇编调用C函数ldr pc, =xxxxxxxxx2.C调用汇编函数start.S中修改 #define GPBCON 0x56000010原创 2017-08-15 09:04:13 · 551 阅读 · 0 评论