搜索
bottom↓
回复: 8

为什么会出现segmentation fault?

[复制链接]

出0入0汤圆

发表于 2014-4-25 16:43:11 | 显示全部楼层 |阅读模式
本帖最后由 sa1148260 于 2014-4-25 21:23 编辑

我在主机上写了一个简单的C程序
#include<stdio.h>
#define GPHCON (*(volatile unsigned *)0x56000070)
int main()
{
        GPHCON = 0x0;
        return 0;
}

我只是想配置GPHCON的工作模式而已
为什么用 arm-linux-gcc3.4.1 编译后在博创s3c2410开发板上运行总是出现 segmentation fault 一直想不明白!

0x56000070是端口H引脚配置寄存器GPHCON的地址, GPHCON = 0x0; 不管我给什么值都会出现segmentation fault
望大侠指点!

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2014-4-25 18:32:30 | 显示全部楼层
如果尝试写入不可写的内存会导致那个错误,比如
  1. char *s = "hello world";
  2. *s = 'H';
复制代码

出0入0汤圆

 楼主| 发表于 2014-4-25 22:01:14 | 显示全部楼层
本帖最后由 sa1148260 于 2014-4-25 22:02 编辑

找到一个可能的原因:虚拟地址和物理地址问题
物理地址被操作系统屏蔽。
应用程序只能访问虚拟地址
如果一定要访问物理地址。
你必须把这些物理设备的操作,写成驱动
应用程序再跟驱动交互

不过还是不知道怎么访问虚拟地址。。再研究一下

出0入0汤圆

发表于 2014-4-25 22:38:03 | 显示全部楼层
本帖最后由 NJ8888 于 2014-4-25 22:40 编辑

linux下不能直接这样操作地址的,要map,奶奶的,去年写了篇linux下高效访问物理地址的文章,投稿某期刊没被用,我直接在EEWORLD上贴出了

出0入0汤圆

发表于 2014-4-26 10:34:38 | 显示全部楼层
我只是路过的,别在意我的出现,顺便学习学习。

出0入0汤圆

发表于 2014-4-26 12:11:07 | 显示全部楼层
你是要写应用?写驱动?
写应用要配合驱动,不能直接控制GPHCON
写驱动要ioremap,如:
volatile unsigned long *gphcon = NULL;
gphcon = (volatile unsigned long *)ioremap(0x56000070, 16);
还要注册字符设备等,不能象裸奔一样直接控制的。

出0入0汤圆

 楼主| 发表于 2014-4-26 12:29:01 | 显示全部楼层
本帖最后由 sa1148260 于 2014-4-26 12:59 编辑
Yaksa 发表于 2014-4-26 12:11
你是要写应用?写驱动?
写应用要配合驱动,不能直接控制GPHCON
写驱动要ioremap,如:


我应该要写应用程序吧(我发现自己竟然分不清楚应用程序和驱动的区别。。),只是从GPHCON端口中读数据。
我去找本相关的书看看,我发现不懂的东西太多了!
谢谢你!

出0入0汤圆

发表于 2014-4-26 12:48:01 | 显示全部楼层
貌似linux下要用硬件设备,需要在驱动文件里使用ioremap函数映射,然后在应用程序里用read write ioctrl函数操作设备。

出0入0汤圆

 楼主| 发表于 2014-4-26 13:04:04 | 显示全部楼层
咖啡可乐 发表于 2014-4-26 12:48
貌似linux下要用硬件设备,需要在驱动文件里使用ioremap函数映射,然后在应用程序里用read write ioctrl函 ...

非常有用的信息,谢谢!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 21:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表