We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
when i add startup.a51 ,init.a51 and C51S.LIB to my project.the link result as below:
INPUT MODULES INCLUDED: test.obj (TEST) aa.obj (AA) .\STARTUP.obj (?C_STARTUP) .\INIT_TNY.obj (?C_INIT) C:\Keil\C51\LIB\C51S.LIB (?C?COPY)
?c_init segment is not the last segment in the link process, is that right?
when i delet startup.a51 and init.a51 from project ,then rebuild it ,the segment of ?c_init is linked at the last step showed below;
INPUT MODULES INCLUDED: test.obj (TEST) aa.obj (AA) C:\Keil\C51\LIB\C51S.LIB (?C_STARTUP) C:\Keil\C51\LIB\C51S.LIB (?C?COPY) C:\Keil\C51\LIB\C51S.LIB (?C_INIT)
i think the send link is right, how about the first link step, is it right?
thanks you!
You may be right.
:-(
But, to me, it seems more likely that the vast majority of inline assembly usage is pure naivety of novice programmers who see that the faclity is present and, therefore, assume that it must be good to use...
.... that they are used to assembler and so 'novice' in C, that if they do not know the appropiate C construct then "just do it in assembler'.
Erik
Yes, there is certainly a lot of that!
I was thinking of that as an example of "naivety of novice [C51] programmers"
Thanks your advice and dicuss about that.
The solution to link the ?C_initseg at the last setp is very easy.
I just want to know about that link procetrue is right or safe? Maybe it is a keil's bug.
After I check ,it is safe.
anyway thanks
No - it is your mis-use (and/or misunderstanding) of the tools that is causing the problem!
The solution is to fix the basic problem in your project structure - not to try to workaround the fallout from it!