0

HI,

I new to linux device drivers.
I am developing HDLC driver.
I dont know how to read and write data in memory mapped address.
Please help.

/*code*/

#define REG_MAP_ADDR 0x50400000

/* Registers */
typedef struct {
u16 MOD;
u16 STATUS;
u16 TBASE;
u16 Tx;
u16 TxBD;
u16 RBASE;
u16 MAX_BUFF_LEN;
u16 Rx;
u16 RxBD;
}reg_map_1ch_t;

typedef struct {
reg_map_1ch_t reg_ch[16];
}reg_map_t;


reg_map_t *reg_map;
unsigned short data=0;
volatile unsigned short *base_addr;

reg_map = ioremap_nocache(REG_MAP_ADDR, sizeof(reg_map_t));

/*now i have to read and write the data of memory mapped address.
Give me idea. I did as follows */

base_addr = (volatile unsigned short *)reg_map;
data = (unsigned short)(*(base_addr));
printk(KERN_ALERT "Before Write Read Data: %d\n", data);

data = 1;
base_addr[0] = data;

data = (unsigned short)(*(base_addr));
printk(KERN_ALERT "After Write Read Data: %d\n", data);

I did Above code in init module, when i am inserting the module, system will reboot.
Whats the error.
i am not getting error, just reboots the system.

3
Contributors
3
Replies
4
Views
8 Years
Discussion Span
Last Post by crunchie
0

If you can't figure out code tags after 60+ posts, what makes you think kernel programming is for you?

-1

If you can't figure out code tags after 60+ posts, what makes you think kernel programming is for you?

who the hell are you, you are not the person to speak about ability.
Ofcourse i am not brillinat than you, but u have some manners.
First learn how to behave.

If you dont know manners, your knowledge is waste.

I know how to use tags, but in hurry i have not used tags.
Thats it.

If you know answer reply to the post else dont blame others.
I think For this purpose u made 5000+ posts.

Votes + Comments
I couldn't give a shit about the code if you can't be arsed to use code tags.
0

who the hell are you, you are not the person to speak about ability.
Ofcourse i am not brillinat than you, but u have some manners.
First learn how to behave.

If you dont know manners, your knowledge is waste.

I know how to use tags, but in hurry i have not used tags.
Thats it.

If you know answer reply to the post else dont blame others.
I think For this purpose u made 5000+ posts.

They are the forum rules. Doesn't matter if you are in a hurry. If you know how to do it, then do it and you will not get replies such as the above.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.