This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

structure initialized to a file

Hi,
I have a structure initialized in a flash

struct DEFSTRUCT const str_default;

I also have an assembly module which loads a binary file:

    AREA    defprog_00111, CODE, READONLY, PREINIT_ARRAY

    EXPORT EXT_Default_profile
EXT_Default_profile
    INCBIN  E:\Aprojects\default_30.bin  ; includes file
    END


How can I initialize the structure str_fefault to the loaded binary file ?
I am trying to avoid an absolute placement of a structure.

I tried to search for possible solution, but no luck, or maybe I missed something.

Thank you,
Gennady

  • I have a structure initialized in a flash

    Sorry, I meant 'a structure instantiated in a flash'

  • If I understand the question correctly, then I think what you want is:

    extern struct DEFSTRUCT const str_default;
    

    and

        AREA    defprog_00111, CODE, READONLY, PREINIT_ARRAY
    
    ;    EXPORT EXT_Default_profile
    ;EXT_Default_profile
        EXPORT str_default
    str_default
        INCBIN  E:\Aprojects\default_30.bin  ; includes file
        END
    

    Then the contents of 'str_default' are defined by the file 'default_30.bin'.

    Be careful: having the structure data external to the program (that is, in a file) is a fragile thing. Any change to the structure type could invalidate your data file.

    You might well be better off expressing the structure value as a C initialization:

    struct DEFSTRUCT const str_default = {
       /* ... member values here ... */
    };