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.

Recommended Answers

All 3 Replies

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

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.

commented: I couldn't give a shit about the code if you can't be arsed to use code tags. -7

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.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.