JZ2440笔记
文章平均质量分 68
maxiumII
这个作者很懒,什么都没留下…
展开
-
JZ2440笔记:驱动调试
18: e5923000 ldr r3, [r2] //根据r3 : bf003000 r2 : 56000050 r1 : bf003c24 r0 : 00000000,有 ldr bf003000,[56000050],结合上文对应的C为*gpfcon &= ~(0x3<<(4*2)|(0x3<<(5*2))|(0x3<<(6*2)));可以看到*gpfcon &= ~(0x3<<(4*2)|(0x3<<(5*2))|(0x3<<(6*2)));原创 2024-06-06 18:00:15 · 562 阅读 · 0 评论 -
JZ2440笔记:热插拔驱动
原来是驱动中出口函数exit写错了,并且没有卸载所有的led设备文件,呵呵。6、vi add_remove_udisk.sh 添加#!(2)修改mdev.conf(修改后要重启啊,不然不行)4、vi add_remove_led.sh 添加。remove时没有反应,没成功?原创 2024-06-05 13:38:49 · 652 阅读 · 0 评论 -
JZ2440笔记:DMA驱动
【代码】JZ2440笔记:DMA驱动。原创 2024-06-04 14:14:53 · 240 阅读 · 0 评论 -
JZ2440笔记:声卡驱动
在s3c2410-uda1341.c修改驱动,修改硬件部分的控制接口,I2S部分通用不用修改。测试驱动:确认内核已经配置了I2S驱动,同时将s3c-wm8976.c编译到uImage里。3、修改音量uda1341_volume相关设置smdk2410_mixer_ioctl。1、增加写寄存器操作函数wm8976_write_reg。2、修改控制器初始化函数init_wm8976。原创 2024-05-31 17:58:23 · 352 阅读 · 0 评论 -
JZ2440笔记:rtc驱动
在common-smdk.c里smdk_devs添加&s3c_device_rtc。原创 2024-05-31 14:53:06 · 405 阅读 · 0 评论 -
JZ2440笔记:I2C驱动
i2c-adapter i2c-0: Invalid probe address 0xa0 //地址值只能是7位,呵呵!加载成功,没有打印at24cxx detect。//原来JZ2440没有IIC设备,呵呵!(3)vi at24cxx.c(构造i2c_client,用于收发数据)(5)vi at24cxx.c(使用I2C传输函数完成字符设备读写)(4)vi at24cxx.c(增加字符设备驱动程序)(2)vi at24cxx.c(强制匹配)无,JZ2440不支持IIC。原创 2024-05-31 14:28:06 · 347 阅读 · 0 评论 -
JZ2440笔记:DM9000C网卡驱动
5、dmfe_open中if (request_irq(dev->irq,&dmfe_interrupt,0,dev->name,dev))修改为if (request_irq(dev->irq,&dmfe_interrupt,IRQF_TRIGGER_RISING,dev->name,dev))=0) || ((chip_info&(1<<2))!3、在dm9000c_init入口函数,增加iobase = (int)ioremap(0x20000000,1024);原创 2024-05-30 14:00:10 · 330 阅读 · 0 评论 -
JZ2440笔记:虚拟网卡
没有实现dev_hard_start_xmit。(2)vi virt_net.c(实现发包函数)(3)vi virt_net.c(假回包)原创 2024-05-30 11:41:50 · 680 阅读 · 0 评论 -
JZ2440笔记:Nor FLASH驱动程序
(3)vi s3c_nor.c(添加分区)可以继续格式化、挂接、建立文件!原创 2024-05-30 10:17:43 · 845 阅读 · 0 评论 -
JZ2440笔记:NAND FLASH驱动程序
然后到Freeing init memory: 140K后没有输出,呵呵。估计守护进程init运行错误,使用与编译kernel相同的交叉编译器来编译busybox,重新制作根文件系统。注意:在s3c_nand_init里添加s3c_nand->ecc.mode = NAND_ECC_SOFT;需要去掉自带nand驱动,并且使用nfs挂接根文件系统。(1)vi s3c_nand.c(识别nand)(2)vi s3c_nand.c(添加分区)原创 2024-05-29 17:25:14 · 652 阅读 · 0 评论 -
JZ2440笔记:块设备驱动程序(内存模拟磁盘)
vi ramblock.c(增加读写)vi ramblock.c(增加分区)原创 2024-05-29 14:36:07 · 1536 阅读 · 0 评论 -
JZ2440笔记:USB设备驱动程序
(2)vi usbmouseaskey.c(读取设备描述符信息)(3)vi usbmouseaskey.c(增加输入子系统)(3)vi usbmouseaskey.c(增加上报按键)使用去掉自带的USB驱动的uImage。使用去掉自带的USB驱动的uImage。原创 2024-05-29 11:22:03 · 667 阅读 · 0 评论 -
JZ2440笔记:触摸屏驱动程序
运行./ts_calibrate程序,触摸屏矫正图标没有反应。网上所说的cat /dev/input/event0有乱码出现不能确定触摸屏驱动是没问题的,应该是驱动还是有问题。(3)vi /etc/ts.conf 使能module_raw input。(4)vi s3c_ts.c(增加定时器支持长按和滑动)(2)vi s3c_ts.c(增加adc测量xy坐标)(3)vi s3c_ts.c(优化测量xy坐标)(5)vi s3c_ts.c(输入子系统上报)(2)安装s3c_ts.ko,lcd.ko。原创 2024-05-28 17:40:48 · 888 阅读 · 0 评论 -
JZ2440笔记:LCD驱动程序
vi /etc/inittab添加tty1:::askfirst:-/bin/sh,重启后insmod上面的模块和button.ko,就可以在通过按键操作LCD显示。测试驱动:先去掉uImage里的S3C2410 LCD驱动,原创 2024-05-28 12:39:46 · 256 阅读 · 0 评论 -
JZ2440笔记:总线驱动设备模型
(1)总线驱动设备模型中的hello world。(2)总线驱动设备模型(添加字符设备驱动惯例)vi ledtest.c测试程序。原创 2024-05-24 11:08:23 · 135 阅读 · 1 评论 -
JZ2440笔记:输入子系统编写按键驱动程序
驱动中增加set_bit(EV_REP,buttons_dev->evbit);vi button.c(实现input_dev)原创 2024-05-23 17:26:41 · 331 阅读 · 1 评论 -
JZ2440笔记:字符设备驱动程序之异步通知(快递员直接给我打电话啊,要什么门卫通知)
(4)vi third_drv.c增加异步通知代码(快递员直接给我打电话)原创 2024-05-22 11:17:52 · 179 阅读 · 0 评论 -
JZ2440笔记:字符设备驱动程序之中断方式的按键驱动(等快递等到睡着)
再次make出现warning: passing argument 2 of 'copy_to_user' makes pointer from integer without a cast,则copy_to_user(buf,key_val,1);再次make出现error: implicit declaration of function 's3c2410_gpio_getpin',则将s3c2410_gpio_getpin() 换成 gpio_get_value()原创 2024-05-21 15:47:03 · 909 阅读 · 0 评论 -
JZ2440笔记:字符设备驱动程序之查询方式的按键驱动程序(一直在等快递,心神不灵)
再次make出现second_drv.c:54:6: warning: unused variable 'i' [-Wunused-variable],在vi中使用命令 :set nu显示出行号,找到第54行,使用命令dd删除此行即可。在上回的代码上修改,将first_drv.c改成second_drv.c,firstdrvtest.c改成seconddrvtest.c。注意:在vi里批量替换使用命令 :%s/first/second/gc 将first字样全部改成second。原创 2024-05-17 13:53:24 · 319 阅读 · 0 评论 -
JZ2440笔记:字符设备驱动程序之LED驱动程序_测试改进2
make出现error: implicit declaration of function 'ioremap' [-Werror=implicit-function-declaration],则加头文件#include ,编译成功。原来是指针操作错误,加解引用符号后为:*gpfcon &= ~(0x3原创 2024-05-16 17:48:32 · 907 阅读 · 0 评论 -
JZ2440笔记:字符设备驱动程序之LED驱动程序_编写编译1
和printk("first_drv_exit");和printk("first_drv_exit\n");3、# lsmod出现的first_drv 854 0 - Live 0xbf00c000 (O)中,854不是设备号。于是man 3 printf,得到并在.c中添加头文件 #include <stdio.h>后编译通过。表示该模块没有任何依赖的其他模块。是模块的名称,表示这是一个名为 "first_drv" 的内核模块。是模块在内核内存空间中的地址,这表明模块已被映射到这个地址进行执行。原创 2024-05-16 16:15:10 · 1718 阅读 · 0 评论