The senior design project of which I am unfortunately the project leader of is basically a study on the feasibility of using Real Time Java (RTJ) on embedded systems that is able to meet hard real time constraints.
When I mentioned this to one of the profs I had last semester, he basically shook his head and seemed to say it's not going to work. From what I've read, some papers straight up say it's not going to work. There's not much industry use of RTJ for embedded systems and all that kind of adds up and is disappointing for us, but still we have to do this either way. So that aside...
The problem I've been finding is that there are not many RTJ implementations that are suitable for embedded systems. A lot of them that are based on the Real Time Specification for Java (RTSJ) seem to be much too big, like they are designed for larger systems like running on a server. Sun's RTS is one of these; it's not suitable for us.
The concerns are cost (we'd like to avoid buying anything, since it is for evaluation and academic use, we could use a demo version as long as it's not limited or stripped), that it will run on a PowerPC-based target, and that hopefully it does not require an underlying Real Time OS (RTOS).
That seems to really limit our choices. So far, we've found simpleRTJ and some Scorpion RTJ. The problem with so many is that they just are too big for an embedded system and/or they require an underlying OS. Something like simpleRTJ is supposedly built to be a small implementation that does not require a RTOS, basically just what we need.
However, simpleRTJ is a commercial product (does have an evaluation version) that I'm not sure will work on a PowerPC and has a number of limitations itself. Plus we need to find several possible products, evaluate them, and choose which one to use for our project.
Another thing is that we are also to investigate creating Java programs that will interact with C code like a device driver. The most common way seems to be with JNI, except that products like simpleRTJ do not support JNI and instead have their own interface. I'm thinking that JNI is the most used and thus most documented and supported, but we probably won't be able to use it, so the capabilities a RTJ product has for doing this task is also important.
So what I'm asking is any thoughts on this in general from someone who has some knowledge or experience, and if anyone is aware of a RTJ implementation that would meet our needs. Thanks.
When I mentioned this to one of the profs I had last semester, he basically shook his head and seemed to say it's not going to work. From what I've read, some papers straight up say it's not going to work. There's not much industry use of RTJ for embedded systems and all that kind of adds up and is disappointing for us, but still we have to do this either way. So that aside...
The problem I've been finding is that there are not many RTJ implementations that are suitable for embedded systems. A lot of them that are based on the Real Time Specification for Java (RTSJ) seem to be much too big, like they are designed for larger systems like running on a server. Sun's RTS is one of these; it's not suitable for us.
The concerns are cost (we'd like to avoid buying anything, since it is for evaluation and academic use, we could use a demo version as long as it's not limited or stripped), that it will run on a PowerPC-based target, and that hopefully it does not require an underlying Real Time OS (RTOS).
That seems to really limit our choices. So far, we've found simpleRTJ and some Scorpion RTJ. The problem with so many is that they just are too big for an embedded system and/or they require an underlying OS. Something like simpleRTJ is supposedly built to be a small implementation that does not require a RTOS, basically just what we need.
However, simpleRTJ is a commercial product (does have an evaluation version) that I'm not sure will work on a PowerPC and has a number of limitations itself. Plus we need to find several possible products, evaluate them, and choose which one to use for our project.
Another thing is that we are also to investigate creating Java programs that will interact with C code like a device driver. The most common way seems to be with JNI, except that products like simpleRTJ do not support JNI and instead have their own interface. I'm thinking that JNI is the most used and thus most documented and supported, but we probably won't be able to use it, so the capabilities a RTJ product has for doing this task is also important.
So what I'm asking is any thoughts on this in general from someone who has some knowledge or experience, and if anyone is aware of a RTJ implementation that would meet our needs. Thanks.
