Understanding the HAL
Terje Slettebø (285) 275 posts |
Hi all. If the following has been covered elsewhere, please provide me a pointer, if possible. I’m currently reading up on what’s new in RISC OS 5 (my PRM books cover RO3, and the PRMs with the C/C++ Tools cover mostly up to RO4.x, as I understand), and reading about the HAL, this page describes the OS image headers. It seems to indicate that the ROM image (like the OMAP3Dev for the BeagleBoard) has a few extra words in front, including the word “OSIm”. Yet, when disassembling the mentioned ROM image, I find no such word at the beginning. However, when searching for it, I did find it at offset &18000. Am I missing something? Regards, Terje |
Jeffrey Lee (213) 6048 posts |
Offset &18000 in an OMAP ROM? That’s wrong – it should be at &10000. It looks like you’re getting confused as to what’s a ROM image and what’s an OS image. The ROM image contains the HAL and the OS image. The HAL takes up the first 64k of the ROM image, and doesn’t have any standard header (since forcing the ROM image to have a particular header right at the start would cause problems with any piece of hardware that boots the machine by branching to the first word of the ROM image). The remaining space in the ROM image is taken up by the OS image, which must start with the OS image header. So for all current RO5 ROMs the OS image header can be found at &10000. |
Terje Slettebø (285) 275 posts |
Hi Jeffrey. Yes, you’re right on both counts: I thought “ROM” and “OS image” was the same thing, and referred to the OMAP3Dev file… Yet, on closer reading of that page, it’s clear that they mean what you say here. Getting off to a rocky start… :) Yet, I guess it’s easier to make mistakes and be tripped up by something, when you don’t have all the concepts internalised… Also right about the offset: To be able to disassemble the ROM, I gave it the type Absolute, which means that the ROM then is displayed as starting at &8000… |