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

error undefined symbol system init....

Hello my friends.i have a problem with my keil uvision4.
When i build my project error undefined symbol.... occurs.I read other forums and they said they add start up.c to teir project and their problem solved.But when i do this the program compiles with no errors but it doesnt work on the hard ware.Im sure that my code works because in my last keil uvision i didnt have this problem(the start up file worked without needing any c file in my last keil version and the hardware worked very nicely).
Does any one knows what the matter is?

Parents
  • There is no magic, the Linker will tell you if the files provided contain sufficient information to get closure or not.

    If it complains about a symbol being undefined it is because you use that symbol but fail to provide the complementary code that provides it. It is not complicated.

    If you have something that is working, or did work, review very carefully what it provides.

    SystemInit is generally called by startup_xyz.s, and the body code is provided in system_xyz.c This is the CMSIS model which appeared about a decade ago to support the Cortex-M processor series.

    If you are not using C, but just assembler then in all likelihood you won't have the function, but you would also not call it either.

    It is hard to guess what exactly you are doing from the rather vague and confused description.

    Perhaps you can ZIP up an example of what was working, with a clear description of the hardware is was supposed to run on, and the version of the tools it was built with.

Reply
  • There is no magic, the Linker will tell you if the files provided contain sufficient information to get closure or not.

    If it complains about a symbol being undefined it is because you use that symbol but fail to provide the complementary code that provides it. It is not complicated.

    If you have something that is working, or did work, review very carefully what it provides.

    SystemInit is generally called by startup_xyz.s, and the body code is provided in system_xyz.c This is the CMSIS model which appeared about a decade ago to support the Cortex-M processor series.

    If you are not using C, but just assembler then in all likelihood you won't have the function, but you would also not call it either.

    It is hard to guess what exactly you are doing from the rather vague and confused description.

    Perhaps you can ZIP up an example of what was working, with a clear description of the hardware is was supposed to run on, and the version of the tools it was built with.

Children