Sida 1 av 2

Skapa Compile database fån MPLAB 8 och X, Hur?

Postat: 10 juni 2021, 18:15:52
av TomasL
Någon som vet hur man kan generera en Compile Database (json) från MPLAB8 eller X med MIPS-GCC (uChips version).
Dvs för en PIC32

Re: Skapa Compile database fån MPLAB 8 och X, Hur?

Postat: 10 juni 2021, 20:48:20
av mankan
Med X och mips-gcc, är det make-baserat?

Isf, kan du bara köra make clean;make 2>/dev/null > compile_data.txt, sedan är det mindre än 10 rader skalskript med grep, cut, echo så är det klart. Jag gjorde så på jobbet nyligen.

Re: Skapa Compile database fån MPLAB 8 och X, Hur?

Postat: 10 juni 2021, 20:51:30
av TomasL
Makefilen är i princip tom
Den ser ut så här

Kod: Markera allt

#
#     CND_BASEDIR                base directory for relative paths
#     CND_DISTDIR                default top distribution directory (build artifacts)
#     CND_BUILDDIR               default top build directory (object files, ...)
#     CONF                       name of current configuration
#     CND_ARTIFACT_DIR_${CONF}   directory of build artifact (current configuration)
#     CND_ARTIFACT_NAME_${CONF}  name of build artifact (current configuration)
#     CND_ARTIFACT_PATH_${CONF}  path to build artifact (current configuration)
#     CND_PACKAGE_DIR_${CONF}    directory of package (current configuration)
#     CND_PACKAGE_NAME_${CONF}   name of package (current configuration)
#     CND_PACKAGE_PATH_${CONF}   path to package (current configuration)
#
# NOCDDL


# Environment 
MKDIR=mkdir
CP=cp
CCADMIN=CCadmin
RANLIB=ranlib


# build
build: .build-post

.build-pre:
# Add your pre 'build' code here...

.build-post: .build-impl
# Add your post 'build' code here...


# clean
clean: .clean-post

.clean-pre:
# Add your pre 'clean' code here...
# WARNING: the IDE does not call this target since it takes a long time to
# simply run make. Instead, the IDE removes the configuration directories
# under build and dist directly without calling make.
# This target is left here so people can do a clean when running a clean
# outside the IDE.

.clean-post: .clean-impl
# Add your post 'clean' code here...


# clobber
clobber: .clobber-post

.clobber-pre:
# Add your pre 'clobber' code here...

.clobber-post: .clobber-impl
# Add your post 'clobber' code here...


# all
all: .all-post

.all-pre:
# Add your pre 'all' code here...

.all-post: .all-impl
# Add your post 'all' code here...


# help
help: .help-post

.help-pre:
# Add your pre 'help' code here...

.help-post: .help-impl
# Add your post 'help' code here...



# include project implementation makefile
include nbproject/Makefile-impl.mk

# include project make variables
include nbproject/Makefile-variables.mk

Re: Skapa Compile database fån MPLAB 8 och X, Hur?

Postat: 10 juni 2021, 21:10:13
av mankan
Spelar ingen roll hur den ser ut. Det viktiga är att spela in kompilatorkommando som den kör med ungefär den raden jag gav dig. Du kan förresten skippa stderr-omdirigeringen.Möjligen kan du behöva slå på något verbose-läge för att få se vilka gcc-kommandon som körs.

Re: Skapa Compile database fån MPLAB 8 och X, Hur?

Postat: 10 juni 2021, 21:11:57
av TomasL
Så, vad hittar man Make 2 på ett W10-system, och ser kommandoraden likadan ut?

Re: Skapa Compile database fån MPLAB 8 och X, Hur?

Postat: 10 juni 2021, 21:25:49
av mankan
För Windows vet jag inte men du borde kunna köra samma mips-gcc i WSL men jag vet inte hur det hjälper dig göra en databas som funkar med MPLAB. De gånger jag kört MPLAB de senaste 20 åren är lätträknade.

Vad ska du ha databasen till?

Re: Skapa Compile database fån MPLAB 8 och X, Hur?

Postat: 10 juni 2021, 21:31:58
av TomasL
Skall köra ett verktyg som heter cppcheck, för att kunna identifiera oanvänd kod.
Det vill ha en sådan fil tydligen.
Eller finns det någon som har bättre ideer för att identifiera oanvänd kod.

Re: Skapa Compile database fån MPLAB 8 och X, Hur?

Postat: 10 juni 2021, 22:02:40
av mankan
Tillräckligt ny gcc kan varna för det själv, möjligen kan du behöva slå på lite -Wall -pedantic -Wextra osv. Tror det räcker med -Wall.
cppcheck kan jobba direkt på filer och kataloger fast då vet den inte vilka som används i ditt projekt.

Men MPLAB och MIPS, då har du väl inget OS med programladdning? Då borde din länkare redan ta bort kod som inte används.

Re: Skapa Compile database fån MPLAB 8 och X, Hur?

Postat: 10 juni 2021, 22:05:23
av TomasL
GCC varnar inte för oanvänd kod, det togs bort för många år sedan.
Ej heller för oanvända globala variabler.
Och tyvärr, så i uChips version, så plockar inte länkaren bort oanvända funktioner heller.
cppcheck kan jobba direkt på filer och kataloger fast då vet den inte vilka som används i ditt projekt.
Jo jag vet, därför så behöver jag databasen

Re: Skapa Compile database fån MPLAB 8 och X, Hur?

Postat: 10 juni 2021, 22:10:57
av mankan
GCC varnar visst för oanvänd kod (funktioner). Osäker på globala variabler dock.

Länkare, kanske bara saknas lämplig flaggor. Använder Microchip inte GNU ld (gcc) eller gold (också gcc)?

Re: Skapa Compile database fån MPLAB 8 och X, Hur?

Postat: 10 juni 2021, 22:12:36
av TomasL
Har aldrig någonsin fått en sådan varning, gissar att det handlar om vilken optimering man kan använda.

Med Doxygen har jag kunnat leta upp en del oanvänt (funktioner), men det är rätt krångligt.

Re: Skapa Compile database fån MPLAB 8 och X, Hur?

Postat: 10 juni 2021, 22:23:09
av mankan
Vilken version har din MIPS-GCC?
Bla följande flaggor slås på med -Wall sedan GCC4.6.0, kanske äldre också men de har ingen html-dokumentation jag kan kolla.
-Wunused-function
-Wunused-label
-Wunused-value
-Wunused-variable

Optimering borde inte spela roll här. Ja, doxygen låter som fel verktyg men antar den utnyttjar collaboration graphs.

Re: Skapa Compile database fån MPLAB 8 och X, Hur?

Postat: 10 juni 2021, 22:40:47
av TomasL
-Wall skall ju slå på detta, men icke.

Vilken den egentliga versionen av GCC det är har jag inte en aning om.

hmm

Kod: Markera allt

D:\Microchip\xc32\V3.01\bin>xc32-gcc --version
pic32m-gcc.exe (Microchip xc32 v3.01) 8.3.1 20190819 [ARM/embedded-6-branch revision 243739] Build date: May 21 2021
Part support version: could not read xc32_device.info
Jag begriper mig inte på GCC release history
från gcc.gnu.org

Kod: Markera allt

GCC 9.4 released [2021-06-01]
GCC 8.5 released [2021-05-14]
GCC 11.1 released [2021-04-27]
GCC 10.3 released [2021-04-08]
GCC 10.2 released [2020-07-23]
GNU Tools @ Linux Plumbers Conference 2020 [2020-07-17]
Will be held through online videoconference, August 24-28 2020
GCC 10.1 released [2020-05-07]
GCC 9.3 released [2020-03-12]
GCC 8.4 released [2020-03-04]
hur kommer det sig att version 11 släpps innan version 8.5 och 9.4
eller handlar det om buggfixar i äldre versioner?

Re: Skapa Compile database fån MPLAB 8 och X, Hur?

Postat: 10 juni 2021, 23:08:55
av hummel
PC-lint från Gimpel gör det du vill men kostar en slant, finns full demo under några veckor.

Re: Skapa Compile database fån MPLAB 8 och X, Hur?

Postat: 10 juni 2021, 23:10:06
av TomasL
Vet, men försöker hålla mina personliga kostnader nere.