Git Product home page Git Product logo

Comments (7)

JamesStokebrand avatar JamesStokebrand commented on September 7, 2024

I'm replying here because it is more appropriate than the other thread.

I made some modifications to the build files:
FILE: ref_app/target/app/make/app_make.gmk

  • removed the ".exe" from the commands to work on Mac command line.
  • I get errors from the "HexManip.exe" make command. I assume it changes the Hex file, but I don't know what changes it makes. Is there a linux equivalent for this program?

FILE: ref_app/target/micros/avr/make/avr_flags.gmk

  • Updated the GCC_VERSION, but it looks like those changes are already made on the latest code base.

Able to successfully compile the ref_app on a Mac using the avr-gcc tool-chain. Put together a ATmega328p reference circuit with an LED on a bread board and successfully flashed the hex file. The LED blinked, so I believe the program ran successfully.

from real-time-cpp.

ckormanyos avatar ckormanyos commented on September 7, 2024

Thanks for the information James.

Were you able to to use GNUmake in its native form on the mac for the ref_app?

Yes. The HEX manipulation program is yet another open issue. Its purpose is to manipulate HEX files via things like adding fill bytes, patching memory sections together, computing CRC and hash data integrity checks and putting them in code for ROM/RAM integrity checks, etc.

Eventually, I would like to replace the executable file with portable sources for HEX-manipulation.

Cheers, Chris.

from real-time-cpp.

JamesStokebrand avatar JamesStokebrand commented on September 7, 2024

Yes, I'm still using the GNU makefiles provided in the project with the following changes:

  • Change paths from backslash to forward slash for Mac paths.
  • Hard code of the TGT = avr (I am only interested in AVR at this time)
  • Removed ".exe" from all targets for mac command line.
  • Update of the paths for the linux targets unique to my mac system ("/usr/bin/" instead of "/bin/")
  • Use of a later GCC_VERSION = 4.8.2
  • Build gcc targets are named "avr-" instead of avr-unknown-". This is probably a Macports specific change.

Used the following build command:

make -f target/app/make/app_make.gmk rebuild

This build successfully with one error related to the HexManip.exe file:

make: tools/generic/hex_tools/HexManip.exe: Permission denied
make: [bin/ref_app_flash.hex] Error 1 (ignored)

Here is the git diff for these changes:

diff --git a/ref_app/target/app/make/app_make.gmk b/ref_app/target/app/make/app_make.gmk
index f25aa17..b172a36 100644
--- a/ref_app/target/app/make/app_make.gmk
+++ b/ref_app/target/app/make/app_make.gmk
@@ -30,9 +30,10 @@ COMPILER_DIRECTORY = gcc-$(GCC_VERSION)-$(GCC_TARGET)
 PATH_TOOLS           = tools
 PATH_TOOLS_UTIL      = $(PATH_TOOLS)\Util
 PATH_TOOLS_MINGW     = $(PATH_TOOLS_UTIL)\MinGW\msys\1.0
-PATH_TOOLS_MINGW_BIN = $(PATH_TOOLS_MINGW)\bin
-PATH_TOOLS_CC        = $(PATH_TOOLS_MINGW)\local\$(COMPILER_DIRECTORY)\bin
+PATH_TOOLS_MINGW_BIN = /bin
+PATH_TOOLS_CC        = /opt/local/bin

+TGT                  = avr
 PATH_APP             = src
 PATH_TGT             = target/micros/$(TGT)
 PATH_APP_MAKE        = target/app/make
@@ -91,23 +92,23 @@ VPATH := $(sort $(dir $(FILES_TMP)))
 # ------------------------------------------------------------------------------
 # Development tools
 # ------------------------------------------------------------------------------
-AR        = $(PATH_TOOLS_CC)\$(GCC_TARGET)-ar.exe
-AS        = $(PATH_TOOLS_CC)\$(GCC_TARGET)-g++.exe
-CC        = $(PATH_TOOLS_CC)\$(GCC_TARGET)-g++.exe
-CL        = $(PATH_TOOLS_CC)\$(GCC_TARGET)-g++.exe
-CPPFILT   = $(PATH_TOOLS_CC)\$(GCC_TARGET)-c++filt.exe
-HEX_MANIP = $(PATH_TOOLS)\generic\hex_tools\HexManip.exe
-NM        = $(PATH_TOOLS_CC)\$(GCC_TARGET)-nm.exe
-OBJDUMP   = $(PATH_TOOLS_CC)\$(GCC_TARGET)-objdump.exe
-OBJCOPY   = $(PATH_TOOLS_CC)\$(GCC_TARGET)-objcopy.exe
-READELF   = $(PATH_TOOLS_CC)\$(GCC_TARGET)-readelf.exe
-SIZE      = $(PATH_TOOLS_CC)\$(GCC_TARGET)-size.exe
-
-ECHO      = $(PATH_TOOLS_MINGW_BIN)\echo.exe
-MAKE      = $(PATH_TOOLS_MINGW_BIN)\make.exe
-MKDIR     = $(PATH_TOOLS_MINGW_BIN)\mkdir.exe
-RM        = $(PATH_TOOLS_MINGW_BIN)\rm.exe
-SED       = $(PATH_TOOLS_MINGW_BIN)\sed.exe
+AR        = $(PATH_TOOLS_CC)/$(GCC_TARGET)-ar
+AS        = $(PATH_TOOLS_CC)/$(GCC_TARGET)-g++
+CC        = $(PATH_TOOLS_CC)/$(GCC_TARGET)-g++
+CL        = $(PATH_TOOLS_CC)/$(GCC_TARGET)-g++
+CPPFILT   = $(PATH_TOOLS_CC)/$(GCC_TARGET)-c++filt
+HEX_MANIP = $(PATH_TOOLS)/generic/hex_tools/HexManip.exe
+NM        = $(PATH_TOOLS_CC)/$(GCC_TARGET)-nm
+OBJDUMP   = $(PATH_TOOLS_CC)/$(GCC_TARGET)-objdump
+OBJCOPY   = $(PATH_TOOLS_CC)/$(GCC_TARGET)-objcopy
+READELF   = $(PATH_TOOLS_CC)/$(GCC_TARGET)-readelf
+SIZE      = $(PATH_TOOLS_CC)/$(GCC_TARGET)-size
+
+ECHO      = $(PATH_TOOLS_MINGW_BIN)/echo
+MAKE      = /usr/bin/make
+MKDIR     = $(PATH_TOOLS_MINGW_BIN)/mkdir
+RM        = $(PATH_TOOLS_MINGW_BIN)/rm
+SED       = /usr/bin/sed


 # ------------------------------------------------------------------------------
diff --git a/ref_app/target/micros/avr/make/avr_flags.gmk b/ref_app/target/micros/avr/make/avr_flags.gmk
index f74e641..371f447 100644
--- a/ref_app/target/micros/avr/make/avr_flags.gmk
+++ b/ref_app/target/micros/avr/make/avr_flags.gmk
@@ -9,8 +9,8 @@
 # compiler flags for the target architecture
 # ------------------------------------------------------------------------------

-GCC_VERSION   = 4.7.2
-GCC_TARGET    = avr-unknown-elf
+GCC_VERSION   = 4.8.2
+GCC_TARGET    = avr

 TGT_STL_DIR   = STL
 TGT_STL_DEFS  =

from real-time-cpp.

thzoechbauer avatar thzoechbauer commented on September 7, 2024

Hello Chris!

I'm using Windows but have a problem with hexmanip.exe too: it is missing and I can't figure out where to download it? Do I have to execute hexmanip.exe on the hex-file or can I comment this line out of app_make.gmk?

Thanks, Tom

from real-time-cpp.

ckormanyos avatar ckormanyos commented on September 7, 2024

Thanks Tom. Please just comment out the line. The presence of the line is actually a bug. Sorry, I thought had already corrected it. I will correct it next week. - Chris

from real-time-cpp.

ckormanyos avatar ckormanyos commented on September 7, 2024

The hex-manip line has been removed from the build script. But this breaks raspi and beagle bone builds of object binaries. Therefore, make a new issue for the creation of a new generic hex-manip facility.

from real-time-cpp.

ckormanyos avatar ckormanyos commented on September 7, 2024

The GNUmake scripts have been extended to include *nix compatibility. There are also new CMake scripts that probably run on the above-mentioned host.

from real-time-cpp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.