Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ARM32 support #2051

Open
ditek opened this issue May 13, 2020 · 33 comments
Open

ARM32 support #2051

ditek opened this issue May 13, 2020 · 33 comments

Comments

@ditek
Copy link

ditek commented May 13, 2020

Request to support ARM32 platform.

ARM64 was added in #118 and there are many comments on that issue about Raspberry Pi and ARM32, so I thought there should be a separate issue for that.

@githubrobinlu
Copy link

Request to support MIPS too.

@debevv
Copy link

debevv commented Jul 27, 2020

+1 for this. I think the lack of a debugger on ARM32 is what is preventing a lot of devs from using go for embedded programming

@nikitos1550
Copy link

+1

3 similar comments
@DominikBasnerSotec
Copy link

+1

@scalarion
Copy link

+1

@fouge
Copy link

fouge commented Sep 17, 2020

+1

@markfarnan
Copy link

+1 Would very much like to debug directly on the RPI-32 with VSCode Remote server and Delve

@jbcoder2
Copy link

jbcoder2 commented Nov 9, 2020

+1

2 similar comments
@SuperFromND
Copy link

+1

@yanggeorge
Copy link

+1

@zlmink
Copy link

zlmink commented Feb 9, 2021

Bounty source

@debevv
Copy link

debevv commented Apr 5, 2021

What are the required steps to port a new architecture?
Is the current ARM 64 code in pkg/proc/native a good starting point in this case?
I'm asking because I might try to port it in the next days

@efancier-cn
Copy link

+1 , really need it on ARM 32

@shytikov
Copy link

Would like to add my voice to army of people who really longing for ARM32 support!

@zachpanter
Copy link

+1, this would be immensely helpful.

@finferflu
Copy link

Just got a Raspberry Pi 400 and it looks like Go development will be hindered by this 😞

@davidjspooner
Copy link

I switched to the 64bit build of raspberry pi os - https://downloads.raspberrypi.org/raspios_arm64/images/ and ( with a pi4 ) am able to remotely debug just fine...

@advancedwebdeveloper
Copy link

Ping

@markoxley
Copy link

Any movement on this? Like others in this thread, I am keen to use Delve on Arm 32

@pgeiem
Copy link

pgeiem commented Nov 3, 2021

We are also really interested to use Delve on Arm32. Any news regarding this ?

@adelgado0723
Copy link

adelgado0723 commented Nov 22, 2021

I'm successfully remote debugging on a raspberry pi zero running raspbian (ARM 32) using puppywang's code https://github.com/puppywang/delve. I know issues have been brought up with this (mostly a lack of testing methodology), but it seems to work for some people.

#2122

@soypat
Copy link

soypat commented Nov 23, 2021

I am voicing my support for this. ➕ 1️⃣ In case @puppywang hadn't seen it BountySource is at 800$

@wlanboy
Copy link

wlanboy commented Jan 12, 2022

Would like to support this too.
Would allow me to debug golang nativeliy on my Raspberry Pi 400.

@efancier-cn
Copy link

The request has been here a while, anyone knows any update on this?

@agambier
Copy link

agambier commented Aug 2, 2022

+1, would be helpful

@HM4704
Copy link

HM4704 commented Sep 20, 2022

I have looked into puppywang's code and fixed some problems.
With this changes the debugger looks quite stable and I am able to debug the debugger on my Raspi.
Unfortunatly the code is still not good enough to be merged.
Here is my branch.

@parvit
Copy link

parvit commented Mar 26, 2023

@HM4704 Hi, what exactly would be necessary to add to the branch you're pointing to?

@HM4704
Copy link

HM4704 commented Mar 29, 2023

@https://github.com/parvit You can make a PR which I would merge.

@parvit
Copy link

parvit commented Mar 29, 2023

@HM4704 I'm sorry i meant a different thing: i wish to know what kind of changes remain to implement in your branch for merging into the main.

@HM4704
Copy link

HM4704 commented Mar 30, 2023

@https://github.com/parvit
It has been a while since I looked into it but here are the problems I remember:

  • a lot of unit tests still fail and/or are disabled for ARM. Try to fix as many as possible.
  • I have marked oode parts I was not sure what todo with "Todo" or "//??". Decide what todo there.
  • one unit test especially, TestContinueMulti(), bothered me alot. I spent days to fix it but I did not succeed in the end. I stll think the problem with this test is the flushing of the cpu caches after setting/removing the software breakpoint. I tried different approaches but none worked reliably. With a hardware debugger one could perhabs seee what is going wrong there but i do not own one.
  • clean up the code

@hrx619273072
Copy link

+1 for this. I think the lack of a debugger on ARM32 is what is preventing a lot of devs from using go for embedded programming

The rapid rise of edge gateways, such as the EMS I'm working on, which is built on the Cortex-A7 platform, has made traditional C language development increasingly challenging. Our system relies heavily on TCP, UDP, and MQTT protocols, while also needing to parse JSON and XML data formats and manage a substantial amount of log data. These tasks are significantly easier to handle with Go, leading us to desire a sooner migration to the Go platform for development.
Fortunately, our system's embedded web component is already developed using Go + Vue, seamlessly interacting with our existing C codebase. We eagerly await the day when DLV provides full support for ARM32, as that will be the catalyst for our migration efforts.

@Taruu
Copy link

Taruu commented Sep 19, 2024

Also as @hrx619273072 i want use Go for embedded solution with mqtt and Json. I want use Go for make update service on swupdate, and after make service api for other special functionality. I want to check what @HM4704 did, and make bug list.
If i have enough time i can try make remote stand for test on multiple arm devices. (Raspberry Pi 3b, Orange Pi R1, Orange Pi 2G-IOT, Allwinner A40i based at workplace)
And I'll try to look at the errors that need to be fix.

@agambier-iem
Copy link

As @Taruu and @hrx619273072 I'm using Go on a llinux battery powered embedded on street device. When I can I develop some packages on my laptop, debug them and cross compile them in the final target but many times I have to debug using Printf(). It would so much easier with a remote debugger.

I've been working on this project for 2 years and the next few years will be for several product based on this first embedded device.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests