标题:
(求助)MPC8315erdb GPIO 设置问题
[打印本页]
作者:
zhangju1122
时间:
2010-4-13 15:13
标题:
(求助)MPC8315erdb GPIO 设置问题
我想将GPIO的30口设置成输出,且输出高电平,但我通过模块化编程没能实现,而通过CodeWarrior却可以。
其中GPIODAT的值无法修改,不知是何原因,请高手指点。
以下是我的程序。
#include <asm/types.h>
#include <asm/io.h>
MODULE_LICENSE ("Dual BSD/GPL");
void gpio_init()
{
int i=0;
unsigned long* gpdir=ioremap(0xe0000c00,4);
unsigned long* gpodr=ioremap(0xe0000c04,4);
unsigned long* gpdata=ioremap(0xe0000c08,4);
unsigned long* gpier=ioremap(0xe0000c0c,4);
unsigned long* gpimr=ioremap(0xe0000c10,4);
unsigned long* gpicr=ioremap(0xe0000c14,4);
printk("gpio_direct:%x\n",*gpdir);
printk("gpio_odr:%x\n",*gpodr);
printk("gpio_data:%x\n",*gpdata);
printk("gpio_gpier:%x\n",*gpier);
printk("gpio_gpimr:%x\n",*gpimr);
printk("gpio_gpicr:%x\n",*gpicr);
*gpdir=0xffffffff;
*gpodr=0x00000000;
*gpdata=0x89abcdef;
printk("gpio_data:%x\n",*gpdata);
*gpier=0x00000000;
*gpimr=0x00000000;
*gpicr=0x00000000;
printk("gpio_direct:%x\n",*gpdir);
printk("gpio_odr:%x\n",*gpodr);
printk("gpio_data:%x\n",*gpdata);
printk("gpio_gpier:%x\n",*gpier);
printk("gpio_gpimr:%x\n",*gpimr);
printk("gpio_gpicr:%x\n",*gpicr);
iounmap(gpdir);
}
typedef unsigned char uchar;
static int lbc_init(void)
{
printk("Hello,world\n");
gpio_init();
return 0;
}
static void lbc_exit(void)
{
printk(KERN_ALERT"Goodbye,cruel world\n");
}
module_init(lbc_init);
module_exit(lbc_exit);
作者:
strongchen
时间:
2010-4-14 10:22
“通过CodeWarrior却可以“,是说在调试的时候修改寄存器值吗?
作者:
zhangju1122
时间:
2010-4-15 16:10
是啊
问题解决了
是由于GPIO管脚复用的问题。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0