nxtOSEK

Discussion specific to NXT-G, NXC, NBC, RobotC, Lejos, and more.
Post Reply
HaWe
Posts: 2500
Joined: 04 Nov 2014, 19:00

nxtOSEK

Post by HaWe »

hi,
what kind of code exactly is nxtOSEK generating? Is it native ARM machine code or is it sort of byte code for a virtual machine?
mightor
Site Admin
Posts: 1079
Joined: 25 Sep 2010, 15:02
Location: Rotterdam, Netherlands
Contact:

Re: nxtOSEK

Post by mightor »

| My Blog: I'd Rather Be Building Robots (http://botbench.com)
| RobotC 3rd Party Driver Suite: (http://rdpartyrobotcdr.sourceforge.net)
| Some people, when confronted with a problem, think, "I know, I'll use threads,"
| and then two they hav erpoblesms. (@nedbat)
HaWe
Posts: 2500
Joined: 04 Nov 2014, 19:00

Re: nxtOSEK

Post by HaWe »

I know this site, but I don't understand the information given.
it's a RTOS, ok, and one can write code for this via gpp, ok.
But what is a RTOS? a bytecode interpreter? or what else? What exactly is it doing with the code?
I can't find anything specific about the kind of the compiled code - they only speak of "final program binary."
I can't actually imagine how preemptive multitasking is achieved by pure, native genuine ARM machine code, considering that the ARM C gnu compiler itself does not support multitasking. So is code for RTOS sth different from genuine ARM machine code to be able to be interpreted by nxtOSEK RTOS? Comparable to sth LejOS does with compiled java code?
mightor
Site Admin
Posts: 1079
Joined: 25 Sep 2010, 15:02
Location: Rotterdam, Netherlands
Contact:

Re: nxtOSEK

Post by mightor »

doc-helmut wrote:But what is a RTOS? a bytecode interpreter? or what else? What exactly is it doing with the code?
Real Time Operating System: http://en.wikipedia.org/wiki/Real-time_operating_system
I can't find anything specific about the kind of the compiled code - they only speak of "final program binary."
Depending on how you compile, it is a pure ARM binary that you load into the RAM. There is no interpretation going on.
I can't actually imagine how preemptive multitasking is achieved by pure, native genuine ARM machine code, considering that the ARM C gnu compiler itself does not support multitasking.

Linux is also capable of multitasking, despite being compiled with gcc (the same compiler). The multitasking is not done by the compiler, it is done by the OS, using a scheduler. Here's another example of an RTOS that can run natively on many platforms: http://www.state-machine.com/, using a very small microkernel. It doesn't matter that the scheduler runs in a program or inside the kernel.

- Xander
| My Blog: I'd Rather Be Building Robots (http://botbench.com)
| RobotC 3rd Party Driver Suite: (http://rdpartyrobotcdr.sourceforge.net)
| Some people, when confronted with a problem, think, "I know, I'll use threads,"
| and then two they hav erpoblesms. (@nedbat)
HaWe
Posts: 2500
Joined: 04 Nov 2014, 19:00

Re: nxtOSEK

Post by HaWe »

thx, now I understand a little more of it...
Post Reply

Who is online

Users browsing this forum: Semrush [Bot] and 1 guest