浏览代码

[ADD]vscode support for nrf52832

hyhkjiy 4 年之前
父节点
当前提交
d42e66cb0d

+ 7 - 0
bsp/nrf5x/nrf52832/.gitignore

@@ -0,0 +1,7 @@
+# vscode common config
+.vscode/*
+!.vscode/launch.json
+!.vscode/tasks.json
+
+# OS X icon info
+.DS_Store

+ 15 - 0
bsp/nrf5x/nrf52832/.vscode/launch.json

@@ -0,0 +1,15 @@
+{
+    "version": "0.2.0",
+    "configurations": [
+        {
+            "type": "cortex-debug",
+            "request": "launch",
+            "servertype": "jlink",
+            "cwd": "${workspaceRoot}",
+            "executable": "rt-thread.elf",
+            "name": "Cortex Debug",
+            "device": "nrf52",
+            "interface": "swd"
+        }
+    ]
+}

+ 54 - 0
bsp/nrf5x/nrf52832/.vscode/tasks.json

@@ -0,0 +1,54 @@
+{
+    // See https://go.microsoft.com/fwlink/?LinkId=733558
+    // for the documentation about the tasks.json format
+    "version": "2.0.0",
+    "tasks": [
+        {
+            "label": "config",
+            "type": "shell",
+            "command": "RTT_ROOT=../../.. scons --pyconfig",
+            "problemMatcher": []
+        },
+        {
+            "label": "build",
+            "type": "shell",
+            "command": "scons",
+            "problemMatcher": [],
+            "group": {
+                "kind": "build",
+                "isDefault": true
+            }
+        },
+        {
+            "label": "clean",
+            "type": "shell",
+            "command": "scons -c",
+            "problemMatcher": []
+        },
+        {
+            "label": "flash",
+            "type": "shell",
+            "command": "nrfjprog -f nrf52 --program rt-thread.hex --sectorerase",
+            "group": "build",
+            "problemMatcher": []
+        },
+        {
+            "label": "flash_softdevice",
+            "type": "shell",
+            "command": "nrfjprog -f nrf52 --program packages/nrf5x_sdk-latest/components/softdevice/s132/hex/s132_nrf52_7.0.1_softdevice.hex --sectorerase",
+            "problemMatcher": []
+        },
+        {
+            "label": "erase",
+            "type": "shell",
+            "command": "nrfjprog -f nrf52 --eraseall",
+            "problemMatcher": []
+        },
+        {
+            "label": "reset",
+            "type": "shell",
+            "command": "nrfjprog -f nrf52 --reset",
+            "problemMatcher": []
+        }
+    ]
+}

+ 25 - 1
bsp/nrf5x/nrf52832/README.md

@@ -2,7 +2,7 @@
 
 ## 简介
 
-该文件夹主要存放所有主芯片为nRF52840的板级支持包。目前默认支持的开发板是官方[PCA10040](https://www.nordicsemi.com/Software-and-tools/Development-Kits/nRF52-DK)
+该文件夹主要存放所有主芯片为nRF52832的板级支持包。目前默认支持的开发板是官方[PCA10040](https://www.nordicsemi.com/Software-and-tools/Development-Kits/nRF52-DK)
 主要内容如下:
 
 - 开发板资源介绍
@@ -61,6 +61,30 @@ PCA10040-nrf52832开发板常用 **板载资源** 如下:
 4. 输入`scons --target=mdk4/mdk5/iar` 命令重新生成工程。
 
 
+### VS Code开发支持
+
+配置步骤:
+
+1. 在命令行设置以下两个环境变量:
+
+    ```bash
+    export RTT_CC=gcc
+    export RTT_EXEC_PATH=<工具链路径/bin>
+    ```
+
+2. 搜索插件`Cortex-debug`并安装。
+3. 安装[nRF Command Line Tools](https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Command-Line-Tools)以支持`nrfjprog`命令。
+4. 在.vscode/settings.json内配置工具链和`JlinkGDBServer`,sample:
+
+    ```json
+    {
+        "cortex-debug.armToolchainPath": "/usr/local/gcc-arm-none-eabi-9-2019-q4-major/bin/",
+        "cortex-debug.armToolchainPrefix": "arm-none-eabi",
+        "cortex-debug.JLinkGDBServerPath": "/Applications/SEGGER/JLink/JLinkGDBServer"
+    }
+    ```
+
+5. 点击`终端`->`运行任务`->`build`编译,点击`终端`->`运行任务`->`flash`烧录,点击左侧`debug`->`run`使用VS Code进行debug。
 
 ## 支持其他开发板
 

+ 3 - 1
bsp/nrf5x/nrf52832/rtconfig.py

@@ -54,7 +54,9 @@ if PLATFORM == 'gcc':
     else:
         CFLAGS += ' -O2'
 
-    POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n'
+    POST_ACTION = OBJCPY + ' -O binary $TARGET rt-thread.bin\n'
+    POST_ACTION += OBJCPY + ' -O ihex $TARGET rt-thread.hex\n'
+    POST_ACTION += SIZE + ' $TARGET \n'
 
 elif PLATFORM == 'armcc':
     # toolchains