microsoft / microsoft/vscode-cpptools

Support Compiler of IAR extensions

Offen
#7,653 2 Kommentare 3 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

embedded Feature Request Language Service parser
Vorherrschende Sprache
TypeScript
Sterne
6.2k
Forks
1.7k
Ø Merge
14 Std. 46 Min.
Gemergte PRs (30 T.)
61

Beschreibung

Type: Feature Request

Hello! I‘m a vscode user.

Sorry to submit a new issue be similar to existing issues. I use GNU Arm Embedded toolchain before, It works very well on vscode with C++ Intellisense("intelliSenseMode": "gcc-arm", "compilerPath": "xxx/gcc-arm-none-eabi.exe"). Recently, I use vscode as the editor of IAR to develop arm program. And I found that vscode does not support some keywords of ICC(IAR-CC ARM).

define symbol

There are some symbols that can cheat the compiler by defines, such as bit in MCS51:

xxx.c:

bit a = 0;

c_cpp_properties.json:

"defines": [
   "bit=bool"
],
other keyword

But there are some keyword that still report errors, such as interrupt in MCS51 or @ in IAR :

static rt_device_t xxx_dev @ ".ccmram";
void Timer_isr(void) interrupt 1
{
   //...
}

This code means to define the variable in ".ccmram" area, and define a function for timer interrupt.

user code

I can define a macro #define NVIC(n) interrupt n if __VSCODE__ is not defined. But this only applies to user code, I shouldn't have to modify the firmware library code.

Of course, this doesn't affect programming, and I don't know how does compiler support work. So it's just a suggestion.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit den IAR-Beispielen im Issue, einschließlich des Schlüsselworts interrupt und der Syntax für die Platzierung von @, und prüfe, wie Compiler-Erweiterungen von der Extension behandelt werden. Die Aufgabe gilt als erledigt, wenn IAR-Firmwarecode für diese Konstrukte ohne Diagnosen geparst werden kann, ohne Änderungen an der Firmware-Bibliothek zu erfordern.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
c, cpp
Bereich
compilers
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.