Other Parts Discussed in Thread: MSPBSL, MSP430FR2311
Hello TI,
I have one question how could i assign an absolute address to "_c_int00_noinit_noargs" ti function?
this will help in designing my bootloader.
regards
Hossam
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello TI,
I have one question how could i assign an absolute address to "_c_int00_noinit_noargs" ti function?
this will help in designing my bootloader.
regards
Hossam
I cannot give you a concrete answer, but this reference may help. Sections 3.2, "Entry Point," and 8.4.10, "Define an Entry Point," from the MSP430 Assembly Language Tools (slau131) may provide some help. Don't let the term assembly deter you.
Thanks Thomas for your response,
I have tried to assign _c_int00 (my entry point)ti function to be at specific address but i found punch of errors.
Can you help?
regards
Hossam
Hi,
What you want to do?
1. You can find the _c_int00 address in .map file and put it in your bootloader
2. You can directly jump to Reset address(0xfffe) in your bootloader
3. You can put the main code at any place you like and put the _c_int00 entrance in Reset
4. Put your bootloader code in main function, following our MSPBSL guide.
Eason
Hi Eason,
My question is simple and clear, I want to allocate the _c_int00 function at specific flash address, How is that?
The address of _c_int00 is not fixed if you checked the map file. Any change in the code will change the _c_int00 allocated address so i want making it fixed? I hope this is clear.
regards
Hossam
Hi Hossam,
I know it. But my question is why you want to do that?
Anyway, here is the solution. I tired on MSP430FR2311.
1. You need to move boot.c and boot_hooks.h in your own project.
2. The compiler will choose which int00 as the system startup routine. It changes from "_c_int00_noinit_noargs" to "_c_int00" So you need to do like this:
#pragma CLINK(_c_int00) #pragma location=0xf100 CSTART_DECL _c_int00(void) { _c_int00_template(1, 1, 0); }
3. Then it works. If you meet some error with MPU, you need to comment:
// if (NEEDS_MPU) // __mpu_init();
Eason
**Attention** This is a public forum