|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
||||
|
||||
|
I want a version of the mplab compiler for Linux.
'nuff said
|
|
#2
|
|||
|
|||
|
Re: I want a version of the mplab compiler for Linux.
I'm the current maintainer of Linux stuff around here.... You need:
1. WINE 2. MCC18 from Microchip -- it runs under WINE 3. IFI Makefile -- see http://adambots-live.sourceforge.net/ 4. Picloader: http://sf.net/projects/ifi-picloader |
|
#3
|
||||
|
||||
|
Re: I want a version of the mplab compiler for Linux.
Quote:
I use WINE quite a bit and the software that was sent with the default kit wouldnt run. What is the differance between that and what you indicate? [edit] Where do i get it? [/edit] |
|
#4
|
|||
|
|||
|
Re: I want a version of the mplab compiler for Linux.
Install MCC18 using WINE, or copy from an existing Windows installation, over to /opt/mcc18. This is the path hardcoded into the makefile. Go to the appropriate Sourceforge project linked above, and download the latest ifi-makefile. You may have to browse CVS, as the latest version is awesome but not tested stable.
|
|
#5
|
||||
|
||||
|
Re: I want a version of the mplab compiler for Linux.
(Oldish thread warning)
What version(s) of WINE work with the MCC18 compiler? I have 20050725 and get Quote:
The version on the SF Adambots-live site is 2004something, and I'd really rather not go that far back... (Getting IE6 working under the current version was a pain; I can't imagine trying it with something older.) --EDIT-- Oh, yeah, and what purpose do the "Z:"s before some of the paths in the Adambots-live Makefile server? I'm changing it so everything will be under my home directory. Sorry, don't know a bunch about shell scriptiing/makefiles. Last edited by Ryan M. : 22-10-2005 at 07:48. |
|
#6
|
|||
|
|||
|
Re: I want a version of the mplab compiler for Linux.
Ok, Three things:
(1) you should link mcc18-traditional to mcc18-traditional.exe using the command [b]ln -sf /opt/mcc18/bin/mcc18-traditional.exe /opt/mcc18/bin/mcc18-traditional. This procedure must be repeated for cpp18 and _mplink. (2) Check out http://adambots.gotdns.com/adambots-...k/configure.py -- Run "python configure.py" to auto-generate a Makefile within a project folder. Re-run after adding or removing files... (3) Get the MCC wrapper scripts: http://adambots.gotdns.com/adambots-...s/mcc-wrapper/ An RPM is available for RPM users; else just copy the three scripts to /usr/local/bin, making sure that they are chmodded +x Last edited by jdong : 23-10-2005 at 21:15. |
|
#7
|
||||
|
||||
|
Re: I want a version of the mplab compiler for Linux.
Thanks! It works now.
Just as an FYI for others (although you'll figure it out I'm sure): user_routines.c has an include for user_Serialdrv.h, but it's actually named user_SerialDrv.h. Either rename the file or change the include statement. (I renamed, so it may have been in other places as well.) |
|
#8
|
|||
|
|||
|
Re: I want a version of the mplab compiler for Linux.
Thank you guys sooo much! This really helped me out. Our school is a bunch of nazis that wont let us do anything on their computer and all I and the other programmers have are Linux machines. I just wish this was in gcc or microchip released a native linux version.
|
|
#9
|
|||
|
|||
|
Re: I want a version of the mplab compiler for Linux.
Quote:
Nevermind. I managed to fix it. Working configure.py attached. Do the above stuff (part 2 was excluded) to get it working. I made it compatible with both RCs, and also made it `make clean` when you run the configure. That can be disabled if you have a slow computer. Set CLEAN near the top to False. Run ./configure.py old to make it build for the old rc. Run ./configure.py alltimers to use FRC_alltimers.lib. You can mix both for the expected effect. I can't test upload till morning though. Last edited by Goldeye : 04-02-2006 at 20:27. Reason: added the [/b] to the quote |
|
#10
|
||||
|
||||
|
Re: I want a version of the mplab compiler for Linux.
I believe I have the new compiler working... (I have yet to test the generated hex file, but I have no reason to believe it to be in error. However, you've been warned.
)
This fix/hack makes compiling for multiple processors difficult (have to change /opt/mcc18/h/p18cxxx.h), but hey... if you're working on FIRST, you're using a certain processor anyways. |
|
#11
|
|||
|
|||
|
Re: I want a version of the mplab compiler for Linux.
Ryan, unfortunately I seem to be getting an error with the linker when I use your configure script. This is the output I get when I do "make" on the default code:
Code:
Linking...
mplink /l\""/opt/mcc18/lib"\" \""18f8722.lkr"\" \""Z:\home\lasindi\.wine\drive_c\first\default_code\\FRC_library.lib"\" /m\""FrcCode.map"\" /o\""FrcCode.cof"\"
Microchip MPLINK Linker
Version 0.0+SVN20050725
DEBUG:Using wine /opt/mcc18//bin/_mplink /l"/opt/mcc18/lib" "18f8722.lkr" "Z:\home\lasindi\.wine\drive_c\first\default_code\FRC_library.lib" /m"FrcCode.map" /o"FrcCode.cof" to launch mplink
MPLINK 3.90, Linker
Copyright (c) 2004 Microchip Technology Inc.
Error - no input object files specified.
Errors : 1
Traceback (most recent call last):
File "/home/lasindi/bin/mplink", line 51, in ?
raise Exception,"Link Failed"
Exception: Link Failed
make: *** [FrcCode.hex] Error 1
I also wonder whether or not my WINE install might be the problem. I'm running Ubuntu with wine 20050725 (the binary I got using apt-get). Which distro and wine version are you running? |
|
#12
|
|||
|
|||
|
Re: I want a version of the mplab compiler for Linux.
First of all you do not need to change anything in the code to get the 2006 code to compile for the 2006 controller, all you have to do is change a couple of things in the make file.
In the Makefile change the PIC to 18F8722 and the ARGS to ARGS=-D_FRC_BOARD -O+ -nw=2066. You do not need to install to /opt/mcc you can install anywere you want. For example I installed into ~/.wine/drive_c/mcc18 if you want to do that change the LIB CODE and INCLUDE paths to where ever you installed. I dont remember if I had to add or take out anything in ALL_TARGETS and INCLUDE_FILES but if you get an error from the linker about a file not being there add it. The reason why the code will fail sometimes is because he has gcc check deps to fix this add -D__$(PIC) to the line starting with cpp. Anyway I probably confused the hell out of everyone so ill post mine below. Code:
#This is automatically generated by the configure.py script #Keep your dirty hands off #Run ./configure.py to generate a fresh one. MCC18=./mcc18 PIC=18F8722 # Don't change ARGS=-D_FRC_BOARD -O+ -nw=2066 LINKER=./mplink MP2HEX=./mp2hex IFILOAD=picloader_textmode SERIAL_DEV=/dev/ttyS0 READLOG=./read.log LIB_PATH=/home/nuke/.wine/drive_c/mcc18/lib CODE_PATH=Z:\home\nuke\FIRST\frc-code-1-04-2006\\ INCLUDE_PATH=/home/nuke/.wine/drive_c/mcc18/h INCLUDE_PATHW=Z:\\home\\nuke\\.wine\\drive_c\\mcc18\\h ALL_TARGETS=user_routines_fast.o ifi_startup.o ifi_utilities.o user_routines.o user_Serialdrv.o main.o INCLUDE_FILES= ifi_default.h ifi_utilities.h user_routines.h user_Serialdrv.h delays.h ifi_aliases.h ############ Targets: default: FrcCode.hex #Remove all the individual file backup (The files ending with ~) #NOTE that this does NOT remove your tbz2 backups! clean-backup-files: @echo -e "Removing all the ~ backup files your annoying editor makes..." @find . -name "*~" |xargs rm -f #Removes all compiled files from the directory clean: clean-backup-files clean-deps nohex @echo -e "Cleaning compiler intermediate files..." @rm -rf *.o *.err #Remove deps folder clean-deps: @echo -e "Cleaning dependency folder..." @rm -rf .deps @mkdir .deps @touch .deps/dummy #Remove hexfiles nohex: @echo -e "Cleaning linker output and hex files..." @rm -rf *.hex *.cod *.cof #These all start the IFI Loader. safeload: prettycode clean check load load: FrcCode.hex $(IFILOAD) FrcCode.hex $(SERIAL_DEV) read: @echo -e "Monitoring $(SERIAL_DEV) for data" @echo -e "Output will also be logged to $(READLOG)" @echo -e "---------" @cat $(SERIAL_DEV) | tee $(READLOG) || /bin/true prettycode: @echo -e "Using indent to autoformat your .c and .h files..." @indent *.c *.h all: clean FrcCode.hex %.o: %.c @echo -e "Compiling $@..." @echo -e "1. Checking Dependencies for $@" @cpp -nostdinc -isystem $(INCLUDE_PATH) -M -MP -D__$(PIC) $< -MF .deps/$*.deps @echo -e "2. Launching Compiler..." @$(MCC18) -p=$(PIC) -fo $@ $< /i\""$(INCLUDE_PATHW)"\" $(ARGS) @echo -e "Done with $@." FrcCode.hex : $(ALL_TARGETS) $(INCLUDE_FILES) @echo -e "Linking..." $(LINKER) /l\""$(LIB_PATH)"\" \""18f8722.lkr"\" $(ALL_TARGETS) \""$(CODE_PATH)FRC_library.lib"\" /m\""FrcCode.map"\" /o\""FrcCode.cof"\" $(MP2HEX) FrcCode.cof .deps/*: @echo -e "Creating Dependency Makefiles..." @mkdir -p .deps @touch .deps/dummy @echo -e "Done!" include .deps/* |
|
#13
|
||||
|
||||
|
Re: I want a version of the mplab compiler for Linux.
Sorry about the delay guys. I'm at Siemens (our build site) with the beloved John Dong right now, we've updated the configure.py script for the '06 stuff.
Put http://adambots.gotdns.com/adambots-...o/configure.py in your project folder, then run it with "python configure.py" to generate Makefiles. Re-run it every time you add/remove c/h files from the project. |
|
#14
|
|||
|
|||
|
Re: I want a version of the mplab compiler for Linux.
I figured out my problem. The configure.py script depends on gawk, and I didn't have it installed. Once I installed gawk, everything works great. Thanks to everyone for your help and your code!
|
|
#15
|
|||
|
|||
|
Re: I want a version of the mplab compiler for Linux.
Quote:
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| MPLAB C18 problem | Justyn | Programming | 0 | 09-03-2005 11:37 |
| IMPORTANT regarding the new C Compiler | dlavery | General Forum | 12 | 14-01-2005 05:05 |
| Makefile and stripped down compiler | Venkatesh | Programming | 0 | 09-01-2005 18:55 |
| MPLAB IDE 6.60 Error | mchan1111 | Programming | 8 | 08-11-2004 20:17 |
| using the MPLAB IDE MPLAB SIM simulator | WizardOfAz | Programming | 1 | 03-11-2003 01:24 |