WallaceIT / picberry

PIC Programmer using GPIO connector
GNU General Public License v3.0
40 stars 27 forks source link

add support for Raspberry Pi 4 #17

Closed jake5253 closed 1 year ago

jake5253 commented 3 years ago

Only tested on RPI4B 8GB version using default GPIO pins... but since the only thing really different is the peri_base address, if it worked on rpi1-3, everything should be golden on rpi4.

jake5253 commented 3 years ago
pi@raspberrypi:~/picberry $ uname -a
Linux raspberrypi 5.4.51-v8+ #1333 SMP PREEMPT Mon Aug 10 16:58:35 BST 2020 aarch64 GNU/Linux
pi@raspberrypi:~/picberry $ make rpi4b
mkdir -p build/devices
g++ -Wall -O2 -s -std=c++11 -DBOARD_RPI4B -c src/inhx.cpp -o build/inhx.o
g++ -Wall -O2 -s -std=c++11 -DBOARD_RPI4B -c src/devices/dspic33e.cpp -o build/devices/dspic33e.o
g++ -Wall -O2 -s -std=c++11 -DBOARD_RPI4B -c src/devices/dspic33f.cpp -o build/devices/dspic33f.o
g++ -Wall -O2 -s -std=c++11 -DBOARD_RPI4B -c src/devices/pic10f322.cpp -o build/devices/pic10f322.o
g++ -Wall -O2 -s -std=c++11 -DBOARD_RPI4B -c src/devices/pic18fj.cpp -o build/devices/pic18fj.o
g++ -Wall -O2 -s -std=c++11 -DBOARD_RPI4B -c src/devices/pic24fjxxxga0xx.cpp -o build/devices/pic24fjxxxga0xx.o
g++ -Wall -O2 -s -std=c++11 -DBOARD_RPI4B -c src/devices/pic24fjxxxga3xx.cpp -o build/devices/pic24fjxxxga3xx.o
g++ -Wall -O2 -s -std=c++11 -DBOARD_RPI4B -c src/devices/pic24fjxxga1xx_gb0xx.cpp -o build/devices/pic24fjxxga1xx_gb0xx.o
g++ -Wall -O2 -s -std=c++11 -DBOARD_RPI4B -c src/devices/pic24fjxxxga1_gb1.cpp -o build/devices/pic24fjxxxga1_gb1.o
g++ -Wall -O2 -s -std=c++11 -DBOARD_RPI4B -c src/devices/pic24fjxxxga2_gb2.cpp -o build/devices/pic24fjxxxga2_gb2.o
g++ -Wall -O2 -s -std=c++11 -DBOARD_RPI4B -c src/devices/pic24fxxka1xx.cpp -o build/devices/pic24fxxka1xx.o
g++ -Wall -O2 -s -std=c++11 -DBOARD_RPI4B -c src/devices/pic32.cpp -o build/devices/pic32.o
g++ -Wall -O2 -s -std=c++11 -DBOARD_RPI4B -c src/devices/pic32_pe.cpp -o build/devices/pic32_pe.o
g++ -Wall -O2 -s -std=c++11 -DBOARD_RPI4B -c src/picberry.cpp -o build/picberry.o
g++ -Wall -O2 -s -std=c++11 -DBOARD_RPI4B -o picberry build/inhx.o build/devices/dspic33e.o build/devices/dspic33f.o build/devices/pic10f322.o build/devices/pic18fj.o build/devices/pic24fjxxxga0xx.o build/devices/pic24fjxxxga3xx.o build/devices/pic24fjxxga1xx_gb0xx.o build/devices/pic24fjxxxga1_gb1.o build/devices/pic24fjxxxga2_gb2.o build/devices/pic24fxxka1xx.o build/devices/pic32.o build/devices/pic32_pe.o build/picberry.o
pi@raspberrypi:~/picberry $ sudo make install
install -m 0755 picberry /usr/bin/picberry
pi@raspberrypi:~/picberry $ file ./picberry 
./picberry: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=33b1275621a25238d5c0aa5cdfde7b0c9e60f88e, stripped
pi@raspberrypi:~/picberry $ sudo picberry -f pic24fjxxxga0xx -d
picberry PIC Programmer v0.2
Device Name: PIC24FJ64GA002
Device ID: 0x00000447
Revision: 0x00003046

Configuration registers:

 - CW2: 0x00000ea0
 - CW1: 0x00000ea0

Press ENTER to exit program mode...
pi@raspberrypi:~/picberry $ sudo picberry -f pic24fjxxxga0xx -r out.hex
picberry PIC Programmer v0.2
Device Name: PIC24FJ64GA002
Device ID: 0x00000447
Revision: 0x00003046
Reading chip...DONE! 
Press ENTER to exit program mode...
pi@raspberrypi:~/picberry $ sudo picberry -f pic24fjxxxga0xx -b
picberry PIC Programmer v0.2
Device Name: PIC24FJ64GA002
Device ID: 0x00000447
Revision: 0x00003046
Blank check...chip is not blank.
Press ENTER to exit program mode...
pi@raspberrypi:~/picberry $ sudo picberry -f pic24fjxxxga0xx -e
picberry PIC Programmer v0.2
Device Name: PIC24FJ64GA002
Device ID: 0x00000447
Revision: 0x00003046
Bulk Erase...DONE!
Press ENTER to exit program mode...
pi@raspberrypi:~/picberry $ sudo picberry -f pic24fjxxxga0xx -b
picberry PIC Programmer v0.2
Device Name: PIC24FJ64GA002
Device ID: 0x00000447
Revision: 0x00003046
Blank check...chip is blank.
Press ENTER to exit program mode...
pi@raspberrypi:~/picberry $ sudo picberry -f pic24fjxxxga0xx -w BP_community_fw-v7.1.hex 
picberry PIC Programmer v0.2
Device Name: PIC24FJ64GA002
Device ID: 0x00000447
Revision: 0x00003046
Writing chip...[DONE! 
Press ENTER to exit program mode...
pi@raspberrypi:~/picberry $ 
pi@raspberrypi:~/picberry $ screen /dev/ttyUSB0 115200 8N1
Bus Pirate v3.5
Community Firmware v7.1 - goo.gl/gCzQnW [HiZ 1-WIRE UART I2C SPI 2WIRE 3WIRE KEYB LCD PIC DIO] Bootloader v255.255
DEVID:0x0447 REVID:0x3046 (24FJ64GA00 2 B8)
http://dangerousprototypes.com
HiZ>

Recovered my BusPirate woohoo!

MikeDK commented 1 year ago

Hello,

I just wanted to make exactly the same PR (add rpi4), then I realized this pull request already exists.

But since there was no answer from the PR owner for more than a year, could we close this and I make a new PR for the raspberry pi 4?

My changes are exactly the same, only other wording :)

WallaceIT commented 1 year ago

Hi @MikeDK,

as you can imagine, the project is not really maintained anymore... but if you open a MR I'll look injto it with pleasure!

MikeDK commented 1 year ago

@WallaceIT already done that 😉

https://github.com/WallaceIT/picberry/pull/20

Too bad to hear its not maintained any more as this is a really cool project 👍

WallaceIT commented 1 year ago

Functionality merged in #20 - closing this one.

Thanks to all who contributed!