Skip to content

Commit

Permalink
tools: Add Raspberry Pi Pico post build tool to create uf2 binary
Browse files Browse the repository at this point in the history
  • Loading branch information
yunkya2 authored and xiaoxiang781216 committed Feb 20, 2021
1 parent b753eea commit 6b83f6a
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 0 deletions.
1 change: 1 addition & 0 deletions tools/rp2040/.gitignore
@@ -0,0 +1 @@
/elf2uf2
37 changes: 37 additions & 0 deletions tools/rp2040/Config.mk
@@ -0,0 +1,37 @@
############################################################################
# tools/rp2040/Config.mk
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership. The
# ASF licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
############################################################################

# These are the macros that will be used in the NuttX make system to compile
# and assembly source files and to insert the resulting object files into an
# archive. These replace the default definitions at tools/Config.mk

# POSTBUILD -- Perform post build operations

ifeq ($(CONFIG_RP2040_UF2_BINARY),y)

define POSTBUILD
$(Q)echo "Generating: nuttx.uf2"; \

+$(Q) $(MAKE) -C $(TOPDIR)$(DELIM)tools$(DELIM)rp2040 -f Makefile.host
tools$(DELIM)rp2040$(DELIM)elf2uf2$(HOSTEXEEXT) nuttx nuttx.uf2;
$(Q)([ $$? -eq 0 ] && echo nuttx.uf2 >> nuttx.manifest && echo "Done.")
endef

endif
35 changes: 35 additions & 0 deletions tools/rp2040/Makefile.host
@@ -0,0 +1,35 @@
############################################################################
# tools/rp2040/Makefile.host
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership. The
# ASF licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
############################################################################

all: elf2uf2
default: elf2uf2
.PHONY: clean

# Add CFLAGS=-g on the make command line to build debug versions

CFLAGS = -O2
CFLAGS += -I$(PICO_SDK_PATH)/src/common/boot_uf2/include

elf2uf2: $(PICO_SDK_PATH)/tools/elf2uf2/main.cpp
@g++ $(CFLAGS) -o $@ $<

clean:
@rm -f *.o *.a *.dSYM *~ .*.swp
@rm -f elf2uf2 elf2uf2.exe

0 comments on commit 6b83f6a

Please sign in to comment.