在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 2532|回复: 0

请教samsungarm44b0上的uclinux下的lcd驱动编程中的变量存储分配问题

[复制链接]
发表于 2004-10-11 10:26:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
在如题中的环境下,编写LCD驱动程序时,我自己定义了些变量,想把显存中某些地址上的数据改写,为什么想这么做呢?是因为我们采用的是16级灰度的黑白液晶,因此有时需要只修改显存中某个地址里的半个字节,这个问题各位大侠有何高见,小弟在此求教了。我目前的想法如下代码:
           struct inode *inode = file->f_dentry->d_inode;
int fbidx = GET_FB_IDX(inode->i_rdev);
struct fb_info *info = registered_fb[fbidx];
struct fb_ops *fb = info->fbops;
struct fb_var_screeninfo var;
int PY;
unsigned long *p,*q,*q1;
struct Stru_LcdDisplay  P_StrPics;
unsigned int NextLine;
unsigned char X_Size,Y_Size,*base_addr,i=0,j=0;
          base_addr = info->disp->screen_base;
          ''''''''''''
p=(base_addr+(P_StrPics.User_yy+(i+P_StrPics.User_xx)*NextLine +PY-1));
*p=*(base_addr+(P_StrPics.User_yy+(i+P_StrPics.User_xx)*NextLine +PY-1));
q=(unsigned char *)(P_StrPics.Pics_Addr+(i+1)*PY-1);
*q=(*q)&0x0f+(*p)&0xf0;
想用这几条语句修改数据,虽然编译通过,但是把bin文件下载后运行相应的应用程序出错:错误信息是:
Unhandled fault: alignment exception (13) at 0x00000001
fault-common.c 96
Internal error: Oops: 0
CPU: 0
pc : [<0c09efe0>]    lr : [<0c09ef2c>]    Not tainted
sp : 0c78d960  ip : 0c78d90c  fp : 0c78da44
r10: 000000a0  r9 : 00000000  r8 : 00000018
r7 : 0c7f1000  r6 : 0000000e  r5 : 00008350  r4 : 0c705e6f
r3 : 0c705e61  r2 : 00000003  r1 : 0000000e  r0 : 0c0ca7d8
Flags: nzcv  IRQs on  FIQs on  Mode SVC_32  Segment user
Control: 0
Process ts (pid: 14, stackpage=0c78d000)
Stack:
0c78d940:                                      0c09ef2c 0c09efe0 00000013 ffffffff
0c78d960: 00000003 000000d2 0000015e 0000001b  0c705e61 170f1200 00000016 00000140
0c78d980: 000000f0 00000140 000000f0 00000000  00000000 00000004 00000000 00000000
0c78d9a0: 00000004 00000000 00000000 00000004  00000000 00000000 00000004 00000000
0c78d9c0: 00000000 00000000 00000000 00000000  00000000 ffffffff ffffffff 00000000
0c78d9e0: 00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000
0c78da00: 00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000
0c78da20: 0c1ec400 0c707f50 0c190d1c 0c1b2168  00004620 0c7106e0 0c78df88 0c78da48
0c78da40: 0c09f6e4 0c09ee64 0c78da74 0c78da58  0c0011c0 0c1b220c 0c7dd220 0c191534
0c78da60: 00000008 0c18903c 0c78da84 0c78da78  0c024380 0c022064 00000000 0c191534
0c78da80: 00000008 00000000 0c78dab8 0c78da98  0c017484 0c021e60 0c78daf0 01e00020
0c78daa0: 0c0860f0 0c017430 0c7eb160 00000001  0c7eb160 00000000 0c78db14 04000000
0c78dac0: 0c78daec 0c78dad0 0c086440 0c086238  00000000 0c191494 00000003 04000000
0c78dae0: 0c78db10 0c78daf0 0c017484 0c021e60  0c78db48 01e00020 0c022364 0c08d974
0c78db00: 20000013 0c78db6c 0c78db14 0c016840  0c017354 0c08d974 0c198a20 00000001
0c78db20: 0c198c60 0c198a1c 00000000 0c1880a0  00000000 0c78dbd4 ffffffff 0c1d4580
0c78db40: 0c78db6c 0c78db70 0c78db5c 0c78db6c  0c78db70 0c78db60 0c023d7c 0c023c58
0c78db60: 00000001 0c78db9c 0c78db74 0c024044  0c023d74 0c1989e0 00000000 0c1880a0
0c78db80: 00000000 0c78dc18 ffffffff 0c6fcd70  0c78dbb0 0c78dba0 0c022364 0c024014
0c78dba0: 0c1989e0 0c78dbd0 0c78dbb4 00000003  0c6ff5ac 0c6ff578 00000002 00000001
0c78dbc0: 0c78dc80 0c7104e0 0c6f8170 0c78dbf0  0c78dbdc 0c032620 0c01c6fc 0c6ff560
0c78dbe0: 0c6ff560 0c78dc04 0c78dbf4 0c032738  0c0325d8 0c7e7920 0c78dc24 0c78dc08
0c78dc00: 0c0927e8 0c032710 0c7e7920 0c1a7134  0c18e878 0c7e7920 0c78dc48 0c78dc28
0c78dc20: 0c093ccc 0c092864 000002e5 20000013  00000000 0c78c000 0c18e86c 0c78dc5c
0c78dc40: 0c78dc4c 0c09147c 0c093b40 0c78dc60  0c78dc7c 0c78dc60 0c022474 0c091440
0c78dc60: 0c1a7170 0c1a7170 0c18e86c 0c6ff560  0c78dcb0 0c78dc80 0c0326d8 00001e00
0c78dc80: 00000400 000002b8 0c78dcb0 0c78dc98  0c033950 0c032fa0 00000400 0c6ff560
0c78dca0: 00000400 00000074 0c793980 00000570  000ae000 000005e4 0c78dcd8 0c78dcc8
0c78dcc0: 0c023d7c 0c023c58 00000001 0c78dd04  0c78dcdc 0c024044 0c023d74 0c1989e0
0c78dce0: 00000000 0c1880a0 00000000 0c78dd80  00001e00 00000400 000002d5 0c78dd24
0c78dd00: 0c78dd0c 0c033950 0c032fa0 00000000  000b90f0 0c7106e0 00000000 0c7eb160
0c78dd20: 00000001 00000fff 0c78dd54 0c78dd38  0c086370 0c086084 0c7eb160 00000000
0c78dd40: 0c78dd9c 04000000 0c78dd74 0c78dd58  0c086440 0c086238 00000000 0c191494
0c78dd60: 00000003 04000000 0c78dd98 0c78dd78  0c017484 0c021e60 0c78ddd0 01e00020
0c78dd80: 0c0860f0 0c08655c 20000013 0c78de08  0c78dd9c 0c016840 0c017354 0c1989c0
0c78dda0: 00000000 000001f4 0c198d74 00000004  20000013 0c78dde0 0c78ddc4 0c0863e8
0c78ddc0: 0c085ee8 00000002 00000007 20000013  0c198d74 0c78de08 0c78dde4 0c08657c
0c78dde0: 0c023790 00000001 00000000 0c1880a0  00000000 0c78deb0 0c7dd240 0c78de34
0c78de00: 0c78de0c 0c0242a8 0c0864fc 0c1989e0  00000000 0c1880a0 00000000 0c78deb0
0c78de20: ffffffff 0c7dd240 0c78de48 0c78de38  0c022364 0c024014 0c1989e0 0c78de68
0c78de40: 0c78de4c 0c022220 0c78de68 0c78de58  0c01d798 0c01c14c 00000001 0c78de88
0c78de60: 0c78de6c 0c021f30 0c01d748 00000000  0c191534 00000008 00000000 0c78deac
0c78de80: 0c78de8c 0c017484 0c021e60 0c78dee4  01e00020 0c09ee1c 0c0af224 20000013
0c78dea0: 0c78df80 0c78deb0 0c016840 0c017354  0c7f8784 0c707f38 00000000 ffffffff
0c78dec0: ffffffff ffffffff ffffffff 00007530  0c190d1c 0c1b220c 0c78df14 0c1ec400
0c78dee0: 000093a8 0c190d1c 0c707ce4 0c78df10  0c78defc 0c0a5438 0c7fa3a8 00000258
0c78df00: 0c78df14 00000258 0c1ec400 000093a8  0c09ee1c 34433353 00304234 00000000
0c78df20: 00000000 0c7f1000 00009600 00000000  00000000 00000003 00000000 00000000
0c78df40: 000000a0 00000000 00000000 00000000  00000000 00000000 0c7dd220 ffffffea
0c78df60: 0c7dd220 00004620 ffffffe7 0c707f50  00000003 00000036 0c705e40 0c78dfac
0c78df80: 0c78df8c 0c03ffa0 0c09f260 00000003  0c707fb0 00000001 0c78c000 0c016c80
0c78dfa0: 00000000 0c78dfb0 0c016ae0 0c03fdbc  00000003 0c01c378 00000003 00004620
0c78dfc0: 0c707f50 0c707f50 00000003 0c707fb0  00000001 00000000 00000000 00000000
0c78dfe0: 0c705e40 0c707f1c 00004620 0c707f0c  0c70219c 0c702160 20000010 00000003
Backtrace:
Function entered at [<0c09ee54>] from [<0c09f6e4>]
Function entered at [<0c09f250>] from [<0c03ffa0>]
Function entered at [<0c03fdac>] from [<0c016ae0>]
r8 = 0C016C80  r7 = 0C78C000  r6 = 00000001  r5 = 0C707FB0
r4 = 00000003
Code: e0844003 e59f0050 (e5341001) ebfe014a e7973005
pid 14: failed 11
/>
我看了错误之后,感觉和存储区的分配有关,但是我这方面很弱,拜求大家了,请指点迷津。
谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-22 23:04 , Processed in 0.017600 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表