microsoft / microsoft/vscode-cpptools
request to support sdcc mcs51 declarations (__sfr, __sbit, etc)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 6.2k
- Forks
- 1.7k
- Avg merge
- 14h 46m
- Merged PRs (30d)
- 61
Description
sdcc, which is quite popular open-source, free embedded compiler, uses special extensions for intel 8051 (aka mcs51) define special function registers and other similar things (like code, ram space, etc)
e.g.
__sfr __at (0xC0) P4 ;
__sbit __at (0xC0) P4_0 ;
extensions are discussed further in section 3.5.1 of sdcc user guide:
http://sdcc.sourceforge.net/doc/sdccman.pdf
We are using sdcc for a new platformio intel-mcs51 platform, (https://github.com/platformio/platform-intel_mcs51) and would love to be able to use the vscode cpptools intellisense here to peek at register definitions, etc.
I see this was previously discussed and rejected for keil C51 compiler at #1821, however I think this is quite different in that Keil is closed/proprietary/non-free (and has it's own ide) whereas sdcc is completely free and opensource, and sdcc+platformio+vscode+cpptools are getting really close to making full open-source ide stack
tagging a few stakeholders:
@ivankravets @spth @znhocn
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading section 3.5.1 of the SDCC user guide and the prior discussion in issue #1821. No source files or tests are named, so first locate the existing handling for compiler-specific declarations, then define completion as IntelliSense recognizing __sfr, __sbit, and related declarations well enough to inspect register definitions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, vscode
- Domain
- compilers, devtools, embedded-iot
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100