microsoft / microsoft/vscode-cpptools

Support Compiler of IAR extensions

オープン
#7,653 コメント 2 件 リアクション 3 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

embedded Feature Request Language Service parser
主要言語
TypeScript
スター
6.2k
フォーク
1.7k
平均マージ
14時間 46分
マージ済み PR(30日)
61

説明

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.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

Issue にある IAR の例から始め、interrupt キーワードと @ の配置構文を含めて、コンパイラ拡張を extension がどのように扱っているかを確認します。これらの構文について診断を出さずに IAR ファームウェアコードをパースでき、ファームウェアライブラリの変更を必要としなければ完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
c, cpp
領域
compilers
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。