-
Notifications
You must be signed in to change notification settings - Fork 3k
Vscode exporter improvements #3568
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Vscode exporter improvements #3568
Conversation
tools/export/cdt/__init__.py
Outdated
@@ -14,7 +14,7 @@ def generate(self): | |||
super(Eclipse, self).generate() | |||
ctx = { | |||
'name': self.project_name, | |||
'elf_location': join('BUILD',self.project_name)+'.elf', | |||
'elf_location': join('BUILD', self.project_name)+'.elf', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is nice and all, but not really related.
Lets get this on a feature branch https://github.com/ARMmbed/mbed-os/tree/feature-vscode |
Done. |
tools/export/vscode/launch.tmpl
Outdated
}, | ||
"osx": { | ||
"MIMode": "gdb", | ||
"MIDebuggerPath": "/Applications/yotta.app/Contents/Resources/prerequisites/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gdb", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this path correct for any osx ? windows and linux have it generic compare to this one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, that's why we need microsoft/vscode-cpptools#442
Please resolve the conflict. Glad to see this contribution !! |
Nice! It's great to see an exporter take care of flashing! |
"debugServerPath": "${workspaceRoot}\\.vscode\\bin\\windows\\gdb_server.exe", | ||
"setupCommands": [ | ||
{ "text": "-target-select remote localhost:3333", "description": "connect to target", "ignoreFailures": false }, | ||
{ "text": "-file-exec-and-symbols z:\\\\mbed-os-example-blinky\\\\BUILD\\\\${workspaceRootFolderName}.elf", "description": "load file", "ignoreFailures": false}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mmmm.... lotsa slashes...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep... GDB wants it's own escape for backslashes... And then escape in JavaScript, so that's 4. Very annoying.
"args": ["-j"] | ||
}, | ||
"windows": { | ||
"command": "${workspaceRoot}\\.vscode\\bin\\windows\\make.bat" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I take it that make.bat does not do parallel the same way that gnumake does?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@theotherjimmy It sets the PATH first to point to the cross-compilation toolchain, and then just invokes GNU Make (with -j
).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, cool the performance is comparable.
That didn't work right meaning the online resolve conflict tool created a merge commit :( Resolved conflict and rebased master offline to keep the branch up to date. Should pass CI now. Had to force push to @janjongboom branch 😨 |
4ecc6fd
to
0f272cf
Compare
/morph export-build |
Result: SUCCESSYour command has finished executing! Here's what you wrote!
Outputmbed Build Number: 82 All exports and builds passed! |
retest uvisor |
@sg- Fixed uvisor debugging by enabling semihosting. Not sure if it's wanted for all targets. |
retest uvisor |
1 similar comment
retest uvisor |
@bridadan where is the status? #3568 (comment) |
nvmd 🤓 @janjongboom pushed a commit. @c1728p9 anything about enabling semihosting for all targets that you think should be a problem? @janjongboom what else before getting merged on the feature branch and iterating? |
@sg- I'd love some way of integrating the cross-compilation tools into this, but for now I think we can go forward with this. Only issue I have right now is running make before debugging (as a pre-debug step) on Windows, don't remember whether I fixed that already or not. Couldn't get it to work at Ericsson today (but they use mbed CLI, not the makefile). Other than that, using it daily, and it's awesome. Especially like the GDB console, already more productive with this than I've ever been with uVision. |
@sg- semihosting looks good to me. @janjongboom what behavior do you see if semihosting is off? Breakpoints constantly being hit? |
@c1728p9 Yeah, w/o uVisor I keep getting trapped in uvisor_api:
|
c9073eb
to
205cf49
Compare
example specified in the supplied .json file, in a user specified fork. A pull request is then made from each fork to the ARMmbed master repo. New usage: python update.py <args> Where <args> are: [-c <file.json>] optional argument for example list, default example.json -U <github user with forked repos> -T <github authorisation token> tag
This saves about 100kB of flash when using ethernet only configuration. Otherwise only border router configuration was supporting ethernet.
For equeue_sema_wait, -1 is used to indicate an infinite wait. This wasn't handled in the nonrtos implementation and caused undefined/weird behaviour after an overflow on integer multiplication. On most boards, the infinite wait would return after ~50 days, on the STM32F4 the timeout killed all other timeouts for some reason.
Previously, when "length = 0" as failsafe, "return 0" is executed. But we changed so that only START bit and STOP bit are executed same as other devices.
CMSIS v2.3.0 => v2.3.1 STM32F0 HAL v1.4.0 => v1.5.0 LL Layer introduction for STM32F0
Following HAL update, this is needed to use the I2C API function rather than previously used MACRO. An assert would fail at compilation time otherwise.
Following STM32 HAL update, it is needed to use up-to-date MACROs. Otherwise, build would fail.
The UART state should be set to busy before starting the transfer Signed-off-by: Mahadevan Mahesh <[email protected]>
Update exporter grouping code to group by directories in the root of the project rather than by the parent directory of each file. This reduces the number of groups and allows all mbed-os code to reside in its own folder.
…lers are set Signed-off-by: Mahadevan Mahesh <[email protected]>
Turn on the vector checksum on all LPC4088 variants. This checksum is required for an application to boot.
When building with the debug profile, certain ST plaforms error with 'get_i2c_timing' not being defined. This is because the function is not defined as 'static inline', but just 'inline'.
…ured for linux and mac although the default installation locations needs attention. also missing windows default paths
Now replaced by #3679 |
@sg- For some reason I cannot open this against your mbed OS fork...
Some stuff that still would need to be fixed to make this work properly:
-target-download
from the debugger microsoft/vscode-cpptools#443 - to load the binary when starting a debug session