Hello all, I am newbie to this ARM technology.I am working in ARM926 processor.I have some confussions in my ARM processor.I want to port my ARM in RTOS.I dont know what are the files to be needed for my application.Can anybody give suggestion for my problem.i am waiting for reply........... thanks in advance, saravanan.
Saravanan Ram wrote: > Hello all, > I am newbie to this ARM technology.I am working in ARM926 > processor.I have some confussions in my ARM processor.I want to port my > ARM in RTOS.I dont know what are the files to be needed for my > application.Can anybody give suggestion for my problem.i am waiting for > reply........... > I am not certain that your question can be answered from such little information. Be aware that ARM926 does not describe a specific device, but merely the processor core of a device, Many manufacturers license ARM IP in their processors and micro controllers, or as 'soft-cores' on FPGAs or IP on ASICs. So what device are you using? If you are using an off the shelf development board, you might specify that as well. ARM9 is a significantly more sophisticated part than ARM7 used in most low-end ARM micro-controllers. It supports higher speeds, and has an MMU and caches to deal with. Board bring-up on ARM9 is a little more complex that on a typical ARM7. Likwise "RTOS" does not describe a particular Real-time operating system, but is merely a generic term for an operating system that supports multiple threads or processes with deterministic scheduling and latency. What particular RTOS are you considering? Moreover I am not sure what you mean by "I want to port my ARM in RTOS". I assume you mean that you wish to deploy an RTOS on yout target processor? What toolchain are you proposing to use (since that may influence the choice of RTOS or vice-versa). Are you intending or willing to use commercial tools? If so what is your budget? As the very minimum starting point you need to have brought your board up to the point where you can begin C and/or C++ code execution in a main() function, and support the standard library at least to the point of enabling dynamic memory allocation. It is also helpful if you can support stdio to a serial port, and buffered, interrupt-driven serial I/O in general. If you have not gotten that far yet, do that before you even think about deploying an RTOS. Clifford
Clifford Slocombe wrote: > Saravanan Ram wrote: >> Hello all, >> I am newbie to this ARM technology.I am working in ARM926 >> processor.I have some confussions in my ARM processor.I want to port my >> ARM in RTOS.I dont know what are the files to be needed for my >> application.Can anybody give suggestion for my problem.i am waiting for >> reply........... >> > I am not certain that your question can be answered from such little > information. > > Be aware that ARM926 does not describe a specific device, but merely the > processor core of a device, Many manufacturers license ARM IP in their > processors and micro controllers, or as 'soft-cores' on FPGAs or IP on > ASICs. So what device are you using? If you are using an off the shelf > development board, you might specify that as well. > > ARM9 is a significantly more sophisticated part than ARM7 used in most > low-end ARM micro-controllers. It supports higher speeds, and has an MMU > and caches to deal with. Board bring-up on ARM9 is a little more complex > that on a typical ARM7. > > Likwise "RTOS" does not describe a particular Real-time operating > system, but is merely a generic term for an operating system that > supports multiple threads or processes with deterministic scheduling and > latency. What particular RTOS are you considering? > > Moreover I am not sure what you mean by "I want to port my ARM in RTOS". > I assume you mean that you wish to deploy an RTOS on yout target > processor? > > What toolchain are you proposing to use (since that may influence the > choice of RTOS or vice-versa). Are you intending or willing to use > commercial tools? If so what is your budget? > > As the very minimum starting point you need to have brought your board > up to the point where you can begin C and/or C++ code execution in a > main() function, and support the standard library at least to the point > of enabling dynamic memory allocation. It is also helpful if you can > support stdio to a serial port, and buffered, interrupt-driven serial > I/O in general. If you have not gotten that far yet, do that before you > even think about deploying an RTOS. > > Clifford Hi Clifford, Thanks for your quick reply.I am working in i.MX27 multi media application processor.That is having in build ARM926 processor.This ARM processor supports so many RTOS.But i choose FreeRTOS for my processor.Because it supports so many ARM families.what mean "I want to port my ARM in RTOS" is I have planned to build FreeRTOS for my application from ARM966 processor.Because it is directly support ARM966 processor not my processor.so we can build it for my processor. I am not using any demo board for my application.If u having any doubt from my questions plz send me.I need your help. regards, saravanan
May I humbly suggest that the best place for your post is here :- http://sourceforge.net/forum/forum.php?forum_id=382005 Good Luck with your project !
Simon Ellwood wrote: > May I humbly suggest that the best place for your post is here :- > > http://sourceforge.net/forum/forum.php?forum_id=382005 > > Good Luck with your project ! Good call. Also of course http://www.freertos.org/ but I imagine he has that already. Since Saravanan has given us little information, and the question is very broad it is not really that simple to answer. But I would point out the following: The major difference between an ARM7 and an ARM9 is much higher clock speeds, and that the latter has an MMU and caches which need to be configured. This would be part of your C/C++ runtime start-up, which is why I asked whether you had that done already. I am not completely familiar with FreeRTOS nor i.MX27, but typically you would configure such a device in the bootloader so that the RAM was remapped to address zero, and the ROM/Flash moved to a higher location. This allows interrupt and exception vectors to be changed dynamically at run-time, and also allows your code to run from higher performance SDRAM. If you are booting from NAND Flash, you will have no choice but to run your code in RAM in any case. Other than the ARM7/9 differences, the differences between one port and another are primarily related to the proprietary non-ARM core device support; the difference between an ARM922 and ARM926 is probably not significant to the purposes of FreeRTOS. Critical to any RTOS are the clock hooks, interrupt handling, and to a lesser extent serial I/O (usually used as a lowest common denominator console and/or debug facility). Clock hardware, interrupt controller architecture, and UART peripherals all vary between ARM devices. Even when used on the same device, it is usually your choice which of several clock sources you might use for the RTOS. You might use a watchdog timer or RTC, or a PWM timer - it would depend on your application and what you might otherwise use such peripherals for. And RTC is a good choice since they can generally perform their RTC function while also generating clock interrupts, however you seldom get much choice over resolution, and in most implementations the hardware usually requires the provision of a separate 38KHz crystal for the RTC. I would suggest that you take an existing ARM9 example, and adapt those target specific parts mentioned above, with reference to the device's user manual. You might also reference the device manual for the source port to help resolve the differences. Make suer that any port you use executes from RAM, and before you do any of that make sure you have a system that boots and starts main() in RAM with the MMU and caches correctly configured. The map defined in the linker script must also match this configuration. To be honest, the provision of a suitable boot loader is probably more complex than porting the RTOS. You may find that Freescale provide suitable code or an application note. If you have a JTAG debugger, it is possible during development to have that load the code directly to RAM, but you will need to figure out how to bootstrap the devive at some point. As you can see I have covered quite a lot of scenarios - mostly because you have still provided so little information. Clifford Clifford
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.