[SOLVED] When connecting CMSIS library lost definitions

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • [SOLVED] When connecting CMSIS library lost definitions

    I use SES to export KEIL projects. When viewing texts in SES I found out that definitions disappear. If the definition is made not in the file itself, then this definition disappears. By iterating, I discovered that a defect occurs (for example) when connecting the standard CMSIS file - "core_cm0.h". If you remove it, the definition works fine. If enabled, the definition disappears.
    I made a simple test - in your example I added a few lines - the file main.h with the definition and include "core_cm0.h". If [#include "core_cm0.h"] is disabled, the display is correct. If enabled, the definition disappears.

    In KEIL and when compiling there are no problems, everything works well in any way. The problem is only in the SES IDE show.

    Comment:
    In the project "Hello", please put "//" or delete the line [#include "core_cm0.h" // <<<< IT !!] and look at the colors of the lines after "#ifdef".
    Files
    • Hello.7z

      (27.42 kB, downloaded 213 times, last: )
  • Hello,

    Thank you for your inquiry.

    u37 wrote:

    I use SES to export KEIL projects.
    What exactly do you mean by that. You import Keil projects to SES or the other way around?


    u37 wrote:

    In the project "Hello", please put "//" or delete the line [#include "core_cm0.h" // <<<< IT !!] and look at the colors of the lines after "#ifdef".
    Your project does not compile as there are other .h files missing that are included in the cm0.h
    Make sure all files are there and the project actually compiles. The included files will be included in the order you call them. Now if one of these files does not compile Embedded Studio will not continue with the next header which is main.h in this case.
    If you flip the order and do first include main.h and then cm0.h you will see that the #ifdef works as expected as the error happens after main.h could be evaluated.

    So simply make sure your application is complete and actually compiles then all header files should be evaluated correctly.

    Best regards,
    Nino
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Thank you, you explained very well what is happening!
    Tell me when will you fix this error?
    While writing a program, some modules may not be connected, but your separation of blocks into active-inactive should work. Or have to write code in the blind. Literally "blind" - the text is already poorly visible.

    Made a new project (made in KEIL 5.23 with import into SES 4.18). The project is compiled into SES and executed.

    test.7z
    Files
    • test.7z

      (173.82 kB, downloaded 218 times, last: )
  • Hello,


    u37 wrote:

    Tell me when will you fix this error?
    Which exactly do you mean?


    u37 wrote:

    While writing a program, some modules may not be connected, but your separation of blocks into active-inactive should work. Or have to write code in the blind. Literally "blind" - the text is already poorly visible.
    Do you get this issue when using the default font?
    If yes try pressing the "Reload Project" button in the Project explorer window.

    Best regards,
    Nino
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Hello,

    This behaviour is expected as you are using the external configuration that builds with Keil instead of ES.
    That way we have no direct application information.
    If you change the build config to Project Internal you should see that everything is working correctly again as ES has all needed context again.

    Best regards,
    Nino
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.