From 71313d934d2258802a850cccecaf18f0cdccf386 Mon Sep 17 00:00:00 2001 From: hathach Date: Tue, 2 Mar 2021 11:50:57 +0700 Subject: [PATCH] update ci for msp430 family --- .github/workflows/build.yml | 85 ++++++++++++++++++++++++++----------- examples/rules.mk | 9 ++-- hw/bsp/msp430/family.mk | 7 ++- 3 files changed, 69 insertions(+), 32 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f90a6843d..5da033cf8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -61,8 +61,6 @@ jobs: - name: Checkout TinyUSB uses: actions/checkout@v2 - with: - submodules: 'false' - name: Checkout Submodules in lib run: git submodule update --init lib @@ -130,26 +128,6 @@ jobs: with: submodules: 'true' - - name: Setup Env - run: | - # Add msp430-gcc url to env - echo >> $GITHUB_ENV MSP430_GCC_URL=http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPGCC/9_2_0_0/export/msp430-gcc-9.2.0.50_linux64.tar.bz2 - - - name: Cache MSP430-GCC - uses: actions/cache@v2 - id: cache-msp430 - with: - path: ~/cache/ - key: ${{ runner.os }}-21-01-26-${{ env.MSP430_GCC_URL }} - - - name: Install MSP430-GCC - if: steps.cache-msp430.outputs.cache-hit != 'true' - run: | - # MSP430 GCC - mkdir -p ~/cache/msp430-gcc - wget --progress=dot:mega $MSP430_GCC_URL -O msp430-gcc.tar.bz2 - tar -C ~/cache/msp430-gcc -xaf msp430-gcc.tar.bz2 - - name: Install Toolchains run: | # ARM & RISC-V GCC from xpack @@ -159,12 +137,69 @@ jobs: echo `echo $HOME/.local/xPacks/@xpack-dev-tools/arm-none-eabi-gcc/*/.content/bin` >> $GITHUB_PATH echo `echo $HOME/.local/xPacks/@xpack-dev-tools/riscv-none-embed-gcc/*/.content/bin` >> $GITHUB_PATH - # TI MSP430 GCC - echo >> $GITHUB_PATH `echo ~/cache/msp430-gcc/msp430-gcc-*/bin` - - name: Build run: python3 tools/build_board.py ${{ matrix.example }} + # build all example for each family + build-msp430: + runs-on: ubuntu-latest + steps: + - name: Setup Python + uses: actions/setup-python@v2 + + - name: Checkout TinyUSB + uses: actions/checkout@v2 + + - name: Checkout Submodules in lib + run: git submodule update --init lib + + - run: | + echo family=msp430 >> $GITHUB_ENV + # Add msp430-gcc url to env + echo >> $GITHUB_ENV MSP430_GCC_URL=http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPGCC/9_2_0_0/export/msp430-gcc-9.2.0.50_linux64.tar.bz2 + + - name: Cache MSP430-GCC + uses: actions/cache@v2 + id: cache-msp430 + with: + path: ~/cache/ + key: ${{ runner.os }}-21-03-02-${{ env.MSP430_GCC_URL }} + + - name: Install MSP430-GCC + if: steps.cache-msp430.outputs.cache-hit != 'true' + run: | + mkdir -p ~/cache/msp430-gcc + wget --progress=dot:mega $MSP430_GCC_URL -O msp430-gcc.tar.bz2 + tar -C ~/cache/msp430-gcc -xaf msp430-gcc.tar.bz2 + + - name: Set Toolchain Path + run: echo >> $GITHUB_PATH `echo ~/cache/msp430-gcc/msp430-gcc-*/bin` + + - name: Build + run: python3 tools/build_family.py ${{ env.family }} + + - uses: actions/upload-artifact@v2 + with: + name: ${{ env.family }}-tinyusb-examples + path: _bin/ + + - name: Create Release Asset + if: ${{ github.event_name == 'release' }} + run: | + cd _bin/ + zip -r ../${{ env.family }}-tinyusb-${{ github.event.release.tag_name }}-examples.zip * + + - name: Upload Release Asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + if: ${{ github.event_name == 'release' }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: ${{ env.family }}-tinyusb-${{ github.event.release.tag_name }}-examples.zip + asset_name: ${{ env.family }}-tinyusb-${{ github.event.release.tag_name }}-examples.zip + asset_content_type: application/zip + # Build ESP32S2 build-esp32s2: runs-on: ubuntu-latest diff --git a/examples/rules.mk b/examples/rules.mk index 1d5a190fe..2b28a4714 100644 --- a/examples/rules.mk +++ b/examples/rules.mk @@ -100,12 +100,11 @@ INC += $(TOP)/src CFLAGS += $(addprefix -I,$(INC)) -# TODO Skip nanolib for MSP430 -ifeq ($(BOARD), msp_exp430f5529lp) - LDFLAGS += $(CFLAGS) -fshort-enums -Wl,-T,$(TOP)/$(LD_FILE) -Wl,-Map=$@.map -Wl,-cref -Wl,-gc-sections -else - LDFLAGS += $(CFLAGS) -fshort-enums -Wl,-T,$(TOP)/$(LD_FILE) -Wl,-Map=$@.map -Wl,-cref -Wl,-gc-sections -specs=nosys.specs -specs=nano.specs +LDFLAGS += $(CFLAGS) -fshort-enums -Wl,-T,$(TOP)/$(LD_FILE) -Wl,-Map=$@.map -Wl,-cref -Wl,-gc-sections +ifneq ($(SKIP_NANOLIB), 1) +LDFLAGS += -specs=nosys.specs -specs=nano.specs endif + ASFLAGS += $(CFLAGS) # Assembly files can be name with upper case .S, convert it to .s diff --git a/hw/bsp/msp430/family.mk b/hw/bsp/msp430/family.mk index 870b27165..a982c2866 100644 --- a/hw/bsp/msp430/family.mk +++ b/hw/bsp/msp430/family.mk @@ -1,3 +1,7 @@ +CROSS_COMPILE = msp430-elf- +FAMILY_SUBMODULES = hw/mcu/ti +SKIP_NANOLIB = 1 + CFLAGS += \ -D__MSP430F5529__ \ -DCFG_TUSB_MCU=OPT_MCU_MSP430x5xx \ @@ -6,8 +10,7 @@ CFLAGS += \ #-mmcu=msp430f5529 -# Cross Compiler for MSP430 -CROSS_COMPILE = msp430-elf- + # All source paths should be relative to the top level. LD_FILE = hw/mcu/ti/msp430/msp430-gcc-support-files/include/msp430f5529.ld