This is the mail archive of the ecos-patches@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RLTK8139 interrupt priority patch


Hello Andrew

Andrew Lunn wrote:
When I used an IRL level in SH4, interrupt is not called for ever if
a level was zero.  This patch can change priority sequence by
private variable.  An initial value is set in 0 with a compiler.
When a change is necessary, a developer initializes this variable.

How does the developer initialize this variable? Looking at the dreamcast example, it does not look easy. You cannot do it in CYGHWR_RLTK_8139_PLF_INIT() because that is called after the interrupt has been created.

Could you show us how you do it for your platform?

Because it is not possible in CYGHWR_RLTK_8139_PLF_INIT(), I define it in a static struct in an INL file. Please look at the following as an example.

// Example edit file
devs/eth/sh/dreamcast/include/devs_eth_sh_dreamcast_rltk8139.inl

// Before editing.

static Rltk8139_t rltk8139_eth0_priv_data = {
	0, 0, 0
};

// After editing

static Rltk8139_t rltk8139_eth0_priv_data = {
    device_num:   (cyg_uint32)0,
    rx_ring:      (cyg_uint8 *)0,
    tx_buffer:    (cyg_uint8 *)0,
    isr_priority: (cyg_priority_t)13
};


Thanks Hajime Ishitani .




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]