看板 LinuxDev 關於我們 聯絡資訊
#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