I have a program which compiles into N segments, where N >= 2. I need to locate all segments starting at a specific address. I know the names of the first two segments, but I don't know the names (or types) of the remaining N-2 segments (these can be arbitrarily changed without my knowing). I'm trying to compose a BL51 command line to handle all cases. Using wildcards such as ?C?* works as long as there is at least one segment that matches the wildcard. Otherwise, the linker gives: ERROR L131: No MATCHING SEGMENT FOR WILDCARD SEGMENT NAME Is there any general way to get around this? I'm using BL51 V4.02. Thanks, Slarti
I need to locate all segments starting at a specific address... If these are CODE segments and you really need to locate ALL of them starting at a particular address, why not just use the CODE linker directive to specify where CODE memory starts. For example:
BL51 {files} CODE(0x2000)
The problem was that I needed to locate two specific segments before all the others. The solution appears to be: CODE(0x4005, ?PR?FOO(0x4005), ?PR?BAR) It wasn't clear from the A51 manual if this was possible, but the linker seems to do the right thing. Am I correct in thinking that this will place FOO at 0x4005, followed immediately by BAR, followed immediately by all the other segments in the program? Thanks, Slarti
Am I correct in thinking that this will place FOO at 0x4005, followed immediately by BAR, followed immediately by all the other segments in the program? Yep - That'll do it. Jon