作者rz600000 (suedeN    )
看板LinuxDev
標題[問題] 一個簡單的GPIO 程式我不行run...
時間Mon Sep 17 21:31:56 2007
#include <stdio.h>
#include <stdlib.h>
#include<sys/mman.h>
#include<fcntl.h>
#include <asm/page.h>
#define ECS0_BASE 0x03F00000
#define IO_REG0 (*(unsigned short *)(ECS0_BASE+0x0C00))
#define IO_REG2 (*(unsigned short *)(ECS0_BASE+0x0C04))
int main(void)
{
int gpio_fd;
void * gpio_map;
gpio_fd = open("/dev/mem",O_RDWR);
gpio_map = mmap(NULL,PAGE_SIZE,PROT_WRITE, MAP_SHARED,
gpio_fd,IO_REG2);
while(1)
{
gpio_map = 0xff00;
}
}
上面那個我經由 arm-linux-gcc –s –o test led.c
(問題 1)
放置板子上run 會出現 segmentation fault
我只是想要將上面的LED燈 呈現暗的狀態..
1 = off
0 = on
IO_REG2 是 led 的 address
(問題 2 )
還有一個問題 是否一定要使用mmap 還是可以直接不使用mmap 改寫成
IO_REG2 = 0xff00; 這樣呢?
我是超新手 煩請多包含~~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.176.183
→ aprotoss:問題一,在moto學園已回覆 09/17 21:54
→ aprotoss:問題二:不行的,Linux有記憶體保護,加上板子若有MMU 09/17 21:54
→ aprotoss:的話,你只會看到virtual memory 09/17 21:56
→ rz600000:感恩 歐大大 還有一個問題 問在摩托 麻煩了 plz 09/17 23:19
→ power272000:請問你有加電阻嗎另外arm linux是那個版本因為我看你 09/18 15:58
→ power272000:你的makefile只能用在pc上因為arm-linux-gcc 09/18 15:59