MS7 <Goto Implementation> Why so many items and meaning ?

Go To Last Post
5 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

 

In MS7, in the code, when pointing to an Interrupt vector function and invoking the "Goto Implementation"

MS7 will open a long list of lines such as shown in the attachment.

 

What are the meaning of the items in each line ?

Why MS7 is not showing the single line pertaining to my specific code ?

Why so many definitions ?

And most important, which one is pertinent to my code ?

 

Much appreciation , 

 

[moderator: the pictures...]

 

and

 

Attachment(s): 

This topic has a solution.
Last Edited: Sat. Sep 11, 2021 - 01:47 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

I'm not sure if it was you I was telling about VassistX in another thread but the fact is that the "header parser" that is used in Studio7 is not that good. In particular it can't seem to cope with conditional code and avr/io.h is basically a long #if/else/else/endif chain that will inlcude just one of about 30-0 ioxxx.h files depending on which AVR is being used. Also this selection depends on a symbol that is actually defined inside the compiler (for example if invoked with "-mmcu=atmega328p" it might define a symbol called something like __AVR_ATmega328P__ which is the symbol used in io.h to pick the right iom328p.h file. It does not "know" about this -mmcu to symbol translation either.

 

So these kind of limitations are just something you have to learn to live with sometimes.

This reply has been marked as the solution. 
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1


BTW you didn't say in this post (or show in the pictures) but from other threads I see it is maybe Tiny85 you are using? In which case the vectors are:

 

 

I added some comments to that. If you go to the location of that header you can do things like:

 

 

Not everyone has "grep" on their PC (how they live without I don't know!) so you can maybe try the Microsoft way to do things like this:

 

 

(except do NOT use the SIG_ names and I don't know how to filter those out when using findstr (even though it has a grep-like /V option!)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

About your first answer: Yes, it was to me that  you mentioned about  VassistX

 

And actually I am using both the Tiny85 and the Atmega328P at the moment. But I get the general idea.

I will certainly utilize that <findstr> tool in Windows. It'll help me verify my code.

 

Curiously, I found 8 different files for the Atmega328, in the Studio7 installation folder:

iom328.h , iom328p.h , iom328.h , iom328p.h , iom328pb.h , iom328.h , iom328p.h , iom328pb.h 

the 3 files in the xc8 folder seems identical than the ones in the avr folder but the two from the gnu folder are different.

 

Would it be correct to assume that despite their differences they end up doing the same thing code wise ?

 

Thanks.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

You need to know what "pack" is in use. That's what I showed in my annotated picture. Use the Properties window when the file is selected to find the location of the "live" copy.