Chinaunix首页 | 论坛 | 博客
  • 博客访问: 157372
  • 博文数量: 40
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 355
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-27 18:05
文章分类
文章存档

2011年(1)

2010年(9)

2009年(16)

2008年(14)

我的朋友
博文列表
标题:
标题 阅读 评论 转发 发布日期
LINUX设备驱动第三版 2074 4 1 2008-12-05
博客已升级,请注意变更地址 568 0 0 2011-06-28
udelay与calibrate_delay 3150 0 0 2010-03-16
字节对齐算法 1301 0 0 2010-02-08
glibc笔记——strlen 1595 0 0 2010-02-08
vmware下找不到hgfs 11606 0 0 2010-02-06
在centos5(rhel5)中使用iso光盘和本地文件来进行Yum软件管理(system-conf 1033 0 0 2010-02-06
Gamma知识 1356 0 0 2010-02-02
sd驱动写法 1063 0 0 2010-01-29
自己写的通用makefile 多文件夹 1765 0 0 2009-12-25
Linux initial RAM disk (initrd) overview 1263 0 0 2009-12-10
从codepage,iocharset 到ASCII,Unicode,UTF-8 3999 0 0 2009-11-25
音频设备的3种硬件接口--PCM,IIS和AC97 1961 1 0 2009-09-03
S3C2440的中断控制器 1499 0 0 2009-08-21
S3C2440的uart 设置 1198 0 0 2009-08-19
从PC总线到ARM的内部总线 1129 0 0 2009-08-16
AMBA、AHB、APB总线简介 2729 0 0 2009-08-16
linux中ctime,mtime,atime的区别 1549 0 0 2009-07-08
linux AS4 安装时选择英文,中文显示乱码的问题 1711 0 0 2009-06-29
uboot1.1.6之nor SST39VF160 移植 2040 0 0 2009-04-09
给主人留下些什么吧!~~

config20102010-01-06 21:06

关于中断的问题,请教! 一个线程会执行一段code,发生中断也会执行这段code,而且线程执行的过程中不能被中断打断,线程执行完毕,再响应中断去执行这段代码。 调查了用spinlock_t,但是它可以被中断打断。用local_irq_disable/enable,中断被屏蔽,(执行code时)中断产生的数据会丢失。spin_lock_irqsave/irqrestore,好像也不能。 求助!能否有可行的方法。

回复  |  举报

config20102009-12-28 15:18

又有问题要请教了,照着开发板做了DM9000电路(开发板软件硬件都没问题)。现在我的板子ping的时候,时不是的会丢些包,如1114 packets transmitted, 1111 received,而且延时与开板相比,变化较大。请问问题出在哪?软件上开发板是一样的。

回复  |  举报

config20102009-12-10 07:57

谢谢LxDr兄的回复: 2.value2 = readw(fpga_base_addr+0x191c); fpga_base_addr是一个void *指针,加上0x191c后, 地址超过0x1ffc了 这里0x191c<0x1ffc,0x1ffc是地址偏移,怎么会超过了?

回复  |  举报

config20102009-12-08 20:01

又来想博主求助了,外设fpga做memory(地址为nGCS3起始),用arm9去读写它,在linux2.6系统下; 地址总线:a0-a12 数据总线:d0-d15 #define FPGA_BASE_ADDR (0x18000000)//片选为nGCS3 #define BWSCON (0x48000000) #define BANKCON3 (0x48000010) #define IP_SIZE (0x1FFF)//13根地址线8K的物理空间 static void *bwscon,*bankcon3,*fpga_base_addr; bwscon = ioremap_nocache(BWSCON,0x0000004); bankcon3 = ioremap_nocache(BANKCON3,0x0000004); fpga_base_addr = ioremap_nocache(FPGA_BASE_ADDR,IP_SIZE); writel(readl(bwscon)|0xD000,bwscon);//总线宽度 writel(0x7FFC,bankcon3);//bank控制 读写memory writew(0xF0,fpga_base_addr); ndelay(300); value1 = readw(fpga_base_addr); ndelay(300); 读寄存器地址为191c(有初始值) value2 = readw(fpga_base_addr+0x191c); 上面为与读写相关的设置。 1,在电路上试验了,读写memory的数据不一致。 2,读寄存器中的值90%情况下是个定值,和初始值不同,少数情况是0. 谢谢。

回复  |  举报

config20102009-11-19 19:22

外设fpga做的8k的memory,用arm9去读写它,在linux2.6系统下;这样做对吗? 实际地址映射到虚拟内存中,用得到的虚拟地址去读写。 地址总线:a1-a14 数据总线:d0-d16 #define FPGA_BASE_ADDR (0x18000000)//片选为nGCS3 #define BWSCON (0x48000000) #define BANKCON3 (0x48000010) #define IP_SIZE (0x1FFF)//13根地址线8K的物理空间 static void *bwscon,*bankcon3,*fpga_base_addr; bwscon = ioremap_nocache(BWSCON,0x0000004); bankcon3 = ioremap_nocache(BANKCON3,0x0000004); fpga_base_addr = ioremap_nocache(FPGA_BASE_ADDR,IP_SIZE); writel(readl(bwscon)|0xD000,bwscon); writel(0x7FFC,bankcon3); for(i=0;i

回复  |  举报
留言热议
请登录后留言。

登录 注册