Hi all, In RTX we can assign a function as a task with the _task_ #NO tag. When calling os_create_task we just pass this task number as a parameter. Assume one has to use banking, in this case, how does RTX identify, in which bank the function exists ? from where does rtx get information about the banks of any task at runtime ? regards pachu
RTOS ... Banking ... is this really a job for an 8051??
RTOS ... Banking ... is this really a job for an 8051?? Sure, just call it "Herbie" Erik
Yes, RTX and some more RTOS for 8051 support code banking. Can anyone throw some light on how rtx managing tasks when using code banking. How does RTX know about the bank of a particular task during run time...does it store some information in the TCB of each task ? Even if it stores some information of the bank for each task in the TCB, where does RTX get this info from ? regards pachu
"Yes, RTX and some more RTOS for 8051 support code banking." and floating-point maths, and dynamic memory allocation, and... Just because it can be done does not make it a good or sensible idea! My point is: if your project really needs both code-banking and an RTOS, is an 8051 really an appropriate target for it?
RTX and some more RTOS for 8051 support code banking If you race a Porsche with a VW you have the likelyhood of blowing the engine. What you are proposing may have been realistic some years ago when any other solution would be much more costly, but today where you e.g. can get an ARM for a couple of bucks it makes absolutely no sense. Now, when you have crammed all that into the poor little bugger, we expect your next post to be "can I clock a 12MHz chip with 50MHz" Erik
"What you are proposing may have been realistic some years ago when any other solution would be much more costly, but today where you e.g. can get an ARM for a couple of bucks it makes absolutely no sense." Maybe an ARM is unsuitable for his application. There is no reason why he shouldn't use an RTOS, code banking, floating point or whatever on an 8051 if the resulting system does what it is required to do. "Now, when you have crammed all that into the poor little bugger, we expect your next post to be "can I clock a 12MHz chip with 50MHz"" Now you're just being silly.
RTOS, code banking, floating point or whatever on an 8051 "Now, when you have crammed all that into the poor little bugger, we expect your next post to be "can I clock a 12MHz chip with 50MHz"" Now you're just being silly. Am I? with "RTOS, code banking, floating point and whatever" he will need better than 12MHz to get the result in "less than an hour". Erik
"There is no reason why he shouldn't use an RTOS, code banking, floating point or whatever on an 8051 if the resulting system does what it is required to do." True, but it may well be that an alternative processor would do it all very much more easily - and, therefore, very much more economically.
"There is no reason why he shouldn't use an RTOS, code banking, floating point or whatever on an 8051 if the resulting system does what it is required to do." Once I were too lazy to go get a hammer when I needed to put up a picture, so I hammered the nail in with my shoe. So, since the nail is in "the resulting system did what it was required to do". Now, unfortunately, because of my poor choice of tool, my shoe broke but "the resulting system does what it is required to do". True, but it may well be that an alternative processor would do it all very much more easily - and, therefore, very much more economically. Had i used a hammer, the nail would have been in in less than half the time. Erik
"Had i used a hammer, the nail would have been in in less than half the time." and you wouldn't have a broken shoe...!
Well, should i say sorry for posting a question to the forum, should i say sorry for asking some question to all the gurus in the world, is there anyone who could kindly, if possible throw some light on my initial query..... Well as Mr.Stefan Duncansan, said, if i am satisfied with the 8051, and the RTOS for my application, why is it that i need to look for higher performance processor or RTOS... any way, kindly if anyone could throw some light on my initial query...it would be very greatful.. thanks and regards pachu
Mr. Pachu, Indeed your question should not be met with unkindness but the point that these very experienced people are making is that you may be saving yourself great anguish by reconsidering the fundamental question of which device to use based upon your job specifications. If their answers seem harsh perhaps it is because they have struggled to make a controller do more than it was intended to do. The choice of a device is the most important decision in the development of an embedded system. Good luck!
"you may be saving yourself great anguish by reconsidering the fundamental question of which device to use based upon your job specifications" Exactly - after all, this question wouldn't even arise if you weren't using code banking, would it?! Code Banking will impact your entire product lifecycle - Design, implementation, Test/Debug, and support/maintenance. All will be affected by having to consider the "quirks" of code banking. Even your hardware cost may be increased, due to the extra stuff to do the bank switching.
"should i say sorry for posting a question to the forum" Well, it is a Discussion forum - not just a free answer shop...! ;-)
"Well, it is a Discussion forum - not just a free answer shop...! ;-)" Yes, but you can understand the OP's frustration when he sees his thread hijacked by a bunch of people telling him his mission is hopeless instead of answering the question. I'm curious, Mr. Neil and Mr. Malund, please tell us which of these things you have used in an 8051 project: 1) Code banking 2) Floating point 3) RTX
"1) Code banking" Not on an 8051 project - not even with the Triscend E5 (now Zylogic ZE5), where the physical bank switching is trivial. I've suffered a banked project on another 8-bit processor, so I know the pain of trying to decide what goes in the "root" bank, and finding that you want to call function X - but it's in another bank, and a bankswitch at this point is really bad, and having to faff about with the HEX files to program your PROMs properly, and... Code banking is a kludge to overcome the fundamental design restriction in the 8051's address space - just like Expanded Memory was a kludge to overcome the fundamental design restriction in MS-DOS's address space. I can't see why you would want to start a project by designing-in a kludge! "2) Floating point" Never without the aid of a numerical co-processor. "3) RTX" Never on an 8051. Not even with a TCP/IP stack. I've done plenty of RTOS projects with "bigger" processors. If you've decided that a "small" controller like an 8051 is suitable for your project, I can't really see why you should then need to use an RTOS. I've done RTOS projects on other 8-bit micros, and I can't say that the extra grief of working with the RTOS was any benefit over not having an RTOS.
""1) Code banking" Not on an 8051 project" ""2) Floating point" Never without the aid of a numerical co-processor." ""3) RTX" Never on an 8051." You see, this is the thing that gets me down. You are advising the OP not to use these things with little or no information about his project and no experience of using them yourself in the context of the 8051/Keil toolchain. I see that you do have experience of RTOS and code banking on other 8 bit devices, and I'm not surprised that the experience wasn't particularly enjoyable. However, neither of us has experience of the Keil implementations of these things so I don't think it's reasonable to just rule them out, especially without knowing any details of the project they're being used on. I have never used RTOS/code banking with an 8 bit processor and probably never will for a variety or reasons. However, I can see that there may be some applications where speed or timing are not issues in which case these may be perfectly reasonable to use. I do use floating point - lots of it, in most of my projects. The 8051 suits my applications very well and I have no timing issues with the maths. So, in my case, the 8051 is the right processor, the fact that it is not 'suited' to floating point is irrelevant.
"I don't think it's reasonable to just rule them out" I never ruled them out - just posed the question, "is this really a job for an 8051??"
View all questions in Keil forum