Hi, I'm working in a system with a very simple operation. It has a microblaze processor and two peripherals (A and B), one for transmite packets and the other to receive them. 1) Transmmiter takes IP packets from soft_temac peripheral, make some transformations and pass it to peripheral A, which has to send it by external fpga pins. 2) Receiver takes packets from external pins of peripheral B, make the inverse transformations and pass it to the lwip stack, which has to send it back to the soft_temac peripheral. I've thought in two main ways to make de software for this purpouse: - Use a simple standalone application, which read the state of peripherals A and B and then decide if it's better to transmmite or to receive, in order to avoid buffer's overflow. - Use xilkernel with two threads, one for transmmiting and the other for receiving. It's my first project using Microblaze so i don't know what is the best choice. I'm not very expert using threads and interrupts, so this is the matter of my question, Thanks in advance! .
> It's my first project using Microblaze so i don't know what is the best > choice. I'm not very expert using threads and interrupts, so this is the > matter of my question, I would suggest to use the standalone application. All this EDK stuff is not so easy to understand, even if you have some experience... Duke
I also thought using standalone is the better idea. I thik that xilkernel is more usefull when you have many tasks to schedule. In my system there are only two task (send and receive packets) which must to be scheduled. My main doubt it's about speed. I want to know if it's faster use xilkernel or a simple scheduling scheme such as in each iteration read one register of both peripherals and decide what process launch. A pseudocode like that: while (1) priority_A = read_peripheral_state (A) priority_B = read_peripheral_state (B) if (priority A > priority B) launch task_A else launch task_B end if end while Thanks for your answers!! :)
Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
Log in with Google account
No account? Register here.