diff --git a/tools/rp2040/.gitignore b/tools/rp2040/.gitignore new file mode 100644 index 0000000000..928007a74f --- /dev/null +++ b/tools/rp2040/.gitignore @@ -0,0 +1 @@ +/elf2uf2 diff --git a/tools/rp2040/Config.mk b/tools/rp2040/Config.mk new file mode 100644 index 0000000000..a950b405b6 --- /dev/null +++ b/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 diff --git a/tools/rp2040/Makefile.host b/tools/rp2040/Makefile.host new file mode 100644 index 0000000000..259102cb22 --- /dev/null +++ b/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