jxyggg1984 发表于 2014-2-25 09:59:56

DM9000可执行程序却出现“段错误”提示

写了一段裸机程序,功能是读写DM9000的寄存器,是可以通过jlink仿真的,但是通过ARM-LINUX-GCC编译后,在linux系统中运行时打印信息告知“段错误”。是不是bank4和MMU需要有什么初始化之类的我没有做啊?请版主和本板的朋友帮帮忙~~谢谢!

TQ-ZQL 发表于 2014-2-25 16:38:01

错误信息什么都没有。一般的段错误跟寄存器的初始化没有多大关系,是访问空指针,编译环境等等引起的

jxyggg1984 发表于 2014-3-3 14:27:30

TQ-ZQL 发表于 2014-2-25 16:38
错误信息什么都没有。一般的段错误跟寄存器的初始化没有多大关系,是访问空指针,编译环境等等引起的

好的,谢谢了,其实我这个程序在裸机的时候跑没问题。上了linux就会报这个提示,看了几个帖子是说linux禁止程序方位片外地址,需要有地址映射,那么我应该怎样才能映射呢?。。。这个问题可能很小白。。。初学,请大大赐教。

TQ-ZQL 发表于 2014-3-3 18:03:22

上网找下:
#define request_mem_region(start,n,name)   __request_region(&iomem_resource, (start), (n), (name))
#define check_mem_region(start,n)            __check_region(&iomem_resource, (start), (n))
#define release_mem_region(start,n)           __release_region(&iomem_resource, (start), (n))
ioremap
这几个。

一般 使用是:
request_mem_region
ioremap
release_mem_region

TQ-ZQL 发表于 2014-3-3 18:03:32

上网找下:
#define request_mem_region(start,n,name)   __request_region(&iomem_resource, (start), (n), (name))
#define check_mem_region(start,n)            __check_region(&iomem_resource, (start), (n))
#define release_mem_region(start,n)           __release_region(&iomem_resource, (start), (n))
ioremap
这几个。

一般 使用是:
request_mem_region
ioremap
release_mem_region

jxyggg1984 发表于 2014-3-5 17:21:20

TQ-ZQL 发表于 2014-3-3 18:03
上网找下:
#define request_mem_region(start,n,name)   __request_region(&iomem_resource, (start), ( ...

好的 谢谢版主 我去试试
页: [1]
查看完整版本: DM9000可执行程序却出现“段错误”提示