自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 Your dtc is too old, please upgrade to dtc 1.4 or newer

Ubuntu16.04  64bit环境下编译u-boot-at91,出现以下问题: CC      net/checksum.o  CC      net/arp.o  CC      net/bootp.o  CC      net/eth-uclass.o  CC      net/eth_common.o  CC      net/net.o  CC      net/nfs.o  CC ...

2018-07-05 17:09:44 2792 1

原创 网卡驱动(2)——移植DM9000驱动

移植DM9000驱动:1、找出相异性,修改2、设置memory controller(位宽、时序等)修改驱动:(1)增加头文件#include <asm/delay.h>#include <asm/irq.h>#include <asm/io.h>#include <asm/arch-s3c2410/regs-mem.h>(2)注释掉版本信息判断 /...

2018-06-09 13:00:22 462

转载 网卡驱动(1)——虚拟网卡

/* * 参考 drivers\net\cs89x0.c */#include <linux/module.h>#include <linux/errno.h>#include <linux/netdevice.h>#include <linux/etherdevice.h>#include <linux/kernel.h&gt...

2018-06-09 11:05:06 1462

原创 块设备驱动(3)——nand flash驱动

/* 参考 * drivers\mtd\nand\s3c2410.c * drivers\mtd\nand\at91_nand.c */#include <linux/module.h>#include <linux/types.h>#include <linux/init.h>#include <linux/kernel.h>#...

2018-05-31 09:32:59 348

转载 块设备驱动(2)——uboot操作nand flash

1. 读ID                                          S3C2440                         u-boot 选中                                   NFCONT的bit1设为0       md.l 0x4E000004 1; mw.l 0x4E000004  1发出命令0x90          ...

2018-05-30 19:00:31 369

原创 块设备驱动(1)——内存模拟硬盘

/* 参考: * drivers\block\xd.c * drivers\block\z2ram.c */#include <linux/module.h>#include <linux/errno.h>#include <linux/interrupt.h>#include <linux/mm.h>#include <li...

2018-05-24 17:03:12 658

原创 tcp服务端程序设计——只允许一个客户端连接

void *panel_tcp_server(void *arg){ int server_sockfd; socklen_t server_len, client_len; struct sockaddr_in server_address; struct sockaddr_in client_address; while(1) { server...

2018-05-24 10:11:20 3984

原创 SPI驱动(1)——框架认识

枚举过程(drivers/spi/spi.c)spi_register_board_info        /* 对于每一个spi_master,调用spi_match_master_to_boardinfo */        list_for_each_entry(master, &spi_master_list, list)                spi_match_mast...

2018-05-12 13:44:28 1117

原创 JZ2440 SPI(1)——初始化

初始化:static void SPIControllerInit(void){    /* OLED  : 100ns, 10MHz    * FLASH : 104MHz    * 取10MHz    * 10 = 50 / 2 / (Prescaler value + 1)    * Prescaler value = 1.5 = 2    * Baud rate = 50/2/3=8.3M...

2018-05-12 11:27:54 584

原创 I2C驱动(2)——读写eeprom

#include <linux/kernel.h>#include <linux/init.h>#include <linux/module.h>#include <linux/slab.h>#include <linux/jiffies.h>#include <linux/i2c.h>#include <l...

2018-05-11 10:24:56 1003

原创 I2C驱动(1)——框架认识

I2C驱动划分为I2C总线驱动(i2c_adapter)和I2C设备驱动(i2c_driver),一种变异的总线驱动设备模型。1、I2C总线驱动知道I2C协议、知道如何发出I2C信号,但是不知道数据的含义(/drivers/i2c/buses/*)。2、I2C设备驱动知道数据的含义,但是不知道怎么发出信号(/drivers/i2c/chips/*)。I2C总线驱动程序1、分配i2c_adapter...

2018-05-11 10:10:23 284

原创 总线驱动设备模型(2)——点亮led

#include <linux/module.h>#include <linux/version.h>#include <linux/init.h>#include <linux/kernel.h>#include <linux/types.h>#include <linux/interrupt.h>#incl...

2018-05-09 10:35:59 349

原创 总线驱动设备模型(1)——框架认识

输入子系统体现了驱动程序的分层分离的思想:1、核心层input.c,输入子系统的核心2、evdev.c,驱动程序的纯软件部分,input_register_handler注册handler,代码稳定3、buttons.c,驱动部分的硬件相关部分,input_register_device注册device,根据硬件及需求修改总线驱动设备模型:1、总线驱动设备模型只是提供一种机制,将驱动程序分为dev...

2018-05-09 10:04:28 687

原创 输入子系统(2)——按键实现

/* 参考drivers\input\keyboard\gpio_keys.c */#include <linux/module.h>#include <linux/version.h>#include <linux/init.h>#include <linux/fs.h>#include <linux/interrupt.h&gt...

2018-05-07 09:37:10 270

原创 输入子系统(1)——框架认识

入口函数:drivers/input/input.c:    input_init > err = register_chrdev(INPUT_MAJOR, "input", &input_fops);    static const struct file_operations input_fops = {    .owner = THIS_MODULE,    .open = i...

2018-05-06 16:49:01 194

原创 字符设备驱动(4)——按键定时器消抖

#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <linux/irq.h>#include <asm/u...

2018-05-04 15:09:04 245

原创 字符设备驱动(3)——异步通知

#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <linux/irq.h>#include <asm/u...

2018-05-04 14:10:41 158

原创 字符设备驱动(2)——按键中断

#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <linux/irq.h>#include <asm/u...

2018-05-03 21:07:35 207

原创 字符设备驱动(1)——点亮led

#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <asm/uaccess.h>#include <asm...

2018-04-27 21:25:34 341

原创 JZ2440 NAND

设置好时序参数后,发送命令直接写NFCCMD,发送地址直接写NFADDR,写数据直接写NFDATA,读数据直接读NFDATA,控制器会发出相应的时序波形,从而控制NAND FLASH。Ø  初始化void nand_init(void){#define  TACLS  0#define  TWRPH0 1#define  TWRPH1 0         /*设置NAND FLASH的时序*/  ...

2018-04-25 10:54:11 389

原创 JZ2440 SDRAM

void sdram_init(){         BWSCON   = 0x22000000;         BANKCON6 =0x18001;         BANKCON7 =0x18001;         REFRESH  = 0x8404F5;         BANKSIZE =0xB1;         MRSRB6   = 0x20;         MRSRB7   =...

2018-04-25 10:45:41 182

原创 JZ2440串口

//115200,8,n,1void uart0_init(){     //GPH2,3用于TXD0,RXD0     GPHCON &= ~((3<<4) |(3<<6));     GPHCON |= ((2<<4) | (2<<6));     //使能内部上拉     GPHUP &= ~((1<<2) |(1&...

2018-04-25 10:43:21 288

原创 JZ2440时钟

硬件上电选择时钟源:时钟生成路线:寄存器设置:void clock_init(){         LOCKTIME= 0xFFFFFFFF;         //CLKDIVN,FCLK= 400MHz,HCLK = FCLK / 4 = 100MHz,PCLK = HCLK / 2 = 50MHz         CLKDIVN  = 0x5;         //MPLLCON,Mpll= ...

2018-04-25 10:40:19 245

原创 JZ2440看门狗

上电禁止看门狗void disable_watchdog(){    WTCON = 0;}

2018-04-25 10:36:10 124

原创 uboot启动内核

uboot流程分为第一阶段(芯片初始化、重定位等)和第二阶段(各项功能),在第二阶段的最后,启动内核1、s = getenv ("bootcmd");    //"nand read.jffs2 0x30007FC0 kernel; bootm 0x30007FC0"2、run_command (s, 0);读内核到SDRAM:(1)NAND FLASH分区#define MTDPARTS_DEF...

2018-04-25 10:11:45 134

原创 Jz2440_yaffs2文件系统制作

开发板:JZ2440目标:制作支持telnet、ftp功能的yaffs2文件系统主机linux:ubuntu 9.10内核版本:linux2.6.22.6交叉编译器:arm-linux-gcc 3.4.5busybox:busybox-1.21.0.tar.bz2 1.编译busybox(1).修改MakefileCROSS_COMPILE   ?=ARCH          ?= $(SUBAR...

2018-04-24 14:25:36 387

原创 Jz2440烧写系统

Linux-2.6.22步骤:1、  openjtag烧写u-boot:(oflash与文件在同一目录)oflash 0 1 00 0 u-boot.bin2、  u-boot下烧写系统(TFTP)关闭防火墙; tftp 30000000uImage_4.3 nand erase kernel nand write.jffs2 30000000 kerneltftp 30000000 fs_min...

2018-04-24 14:01:25 512

原创 init进程分析

uboot传递启动参数:root=/dev/mtdblock3  init=/linuxrc console=ttySAC0 kernel启动第一个程序:1、函数mount_root挂载分区root=/dev/mtdblock32、打开设备/dev/console3、启动第一个程序run_init_process("/linuxrc") //linuxrc与/sbin/init相同    ----...

2018-04-24 13:50:03 294

原创 存储分布图

JZ2440内存SDRAM大小64M(0x30000000~0x34000000),NAND大小256M。uboot重定位起始地址为0x33F80000,预留空间512k,包含代码段和bss段。NAND FLASH中依次存放uboot、parameters、kernel、root。重定位过程将uboot代码从NAND FLASH中拷贝到SDRAM的地址0x33F80000,并跳转到SDRAM中继续...

2018-04-24 11:01:10 404

原创 内核模块设计初步

一个简单的内核模块包含: 1、头文件 linux/init.h、linux/module.h 2、加载函数 module_init 3、卸载函数 module_exit另外,可选信息: 1、模块申明 MODULE_LICENSE(”遵守的协议”) MODULE_AUTHOR(“作者”) MODULE_DESCRIPTION(“模块的功能描述”) MODULE_VERSION(...

2016-08-31 14:34:43 144

空空如也

空空如也

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

TA关注的人

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