EmbeddedRelated.com
Forums

QNX and ARM

Started by Piotr February 9, 2008
Hello,

I would like to install QNX on my development board S3CEV40 (Samsung 
S3C44B0x ARM7TDMI). There isn't BSP for this platform, so I installed 
'arm-bsp-integrator'. I know, that I must change the source of the BSP 
to match my hardware, but I don't know how can I begin? I were reading 
'QNX Neutrino 6.3 - Building Embedded Systems', but there aren't any 
hints on match the BSP with hardware.

Do You know where can I find any solutions or guides?

Thank You in advance.

PS. I'm sorry for my language abilities, but I still learning it.

-- 
Peter
On Feb 9, 8:04=A0pm, Piotr <piotr.pi...@gmail.com> wrote:
> Hello, > > I would like to install QNX on my development board S3CEV40 (Samsung > S3C44B0x ARM7TDMI). There isn't BSP for this platform, so I installed > 'arm-bsp-integrator'. I know, that I must change the source of the BSP > to match my hardware, but I don't know how can I begin? I were reading > 'QNX Neutrino 6.3 - Building Embedded Systems', but there aren't any > hints on match the BSP with hardware. > > Do You know where can I find any solutions or guides? >
I have few points for you. But, there are many and vary. These are generic ideas. Generally, The info required are as below - Technique to place your OS image on that specific bare board. (Memory Maps - Flash Memory and RAM memory info) Clock Configurations - Make it as per your spec. This is the very basic stuff to start with. Check the Reset vector address. (Will come handy while placing the bootloader so that it boots up from that location after reset) Linker Script changes (Linker Command File Changes) - Make the changes based on your spec and hardware memory map. (It is very important - Allocate enough memory for application, Proper Stack Configuration, Heap Configuration, Other External Devices memory usage and Mapping Configurations) Different processors follow different intialisation procedures for peripherals and so, you cannot just like that use those routines (Unless it is a revised processor release from the same vendor) . So, you may need to play around by making your own initialisation scripts as per the peripheral hardware, processor and OS you use. Configure your serial port address and other port addresses properly. Have a simple serial port(program) ready initially so that it could help you in various ways. You should also have simple routines to transfer files from Flash to RAM at your desired location( Refer your Memory Mapping info). This would come handy if you have your own bootloader to transfer the application from the Flash to RAM. You should also have some routines to check Flash Memory / RAM and these should be implemented to check Flash/RAM before placing your bootloader or application - Considered as a good practice. If you are able to place the OS , you must initally try the serial communication program to check if you are able to run your application. Have a simple Rx and Tx routine that prints your inputs on the console . Address to place your OS - The address in the memory in which you have to place your OS image. Integration of the bootloader and the application. (Handing of control from the bootloader to the OS inturn to application) (Some have primary and secondary bootloader concepts. So, refer your specification to make the necessary changes. You should be aware of the booting of the OS you use in your hardware.) If your OS supports uncompression while booting up, you need to take care of that also. If you are using MMU, be sure to see that it is disabled and enabled at the right instance while booting up as it might change the address it points to. Understand your MMU architecture and make the necessary changes. Try the best and fast debugging mode. Normally many debugging tricks are present and will be available with any kind of processor board. You must opt for the quick and best as it will save time and enable to try many tricks. Karthik Balaguru