AnsweredAssumed Answered

Who defines the operations __eabi and __init?

Question asked by Michael Binz on Jun 13, 2019
Latest reply on Jun 14, 2019 by Michael Binz

We generated a C project on the mpc5748g that results in a failure when starting the main() operation.  The problem seems to be a bad hardware initialisation.  In the process of analysing the issue we found that the following function entry was generated for our main():

 

40002bce: se_illegal
main:
40002bd0: e_stwu r1,-32(r1)
40002bd4: se_mflr r0
40002bd6: se_stw r0,36(r1)
40002bd8: se_stw r31,28(r1)
40002bda: se_mr r31,r1
40002bdc: e_bl 0x40003908 <__eabi>
40002be0: se_li r7,0
40002be2: se_stw r7,8(r31)
40002be4: e_lis r7,16384
40002be8: se_li r6,0
40002bea: e_stb r6,23324(r7)
40002bee: e_lis r7,16384

 

The question is where the __eabi (in bold above) is defined?  We debugged __eabi and found that in turn the operation __init is called and here we have the same question:

 

Who does where define these operations? Are there different versions available? Is the source code of the operations available?

Outcomes