Tool chain to write Pine 64 linux apps on a Windows Dev machine
#1
I'm a professional software developer (but not a Linux developer) so this question is not "How do I code an app?"  The question is "What's the easiest way to write Pine64 code to handle GPIO events."


Details:  I want to build a background process for my Pine64 (running Debian) to handle GPIOs so that I can power on/off a few things either via Node-Red (already installed on the pine), or by manually pushing a button on my Pine64 case.  The program logic is done, but I'm struggling to find a tool chain that I can use to create the program.  Either I can't compile the code, or once I get an executable running, it doesn't seem to run.  

In a perfect world, I'd love to get C# on the Pine64 working, but I'd be happy with any standard language (C, C++, etc.) that I can write and compile on my main dev machine, which runs Windows 10.  (It can run Linux in a VM if required for compiling.  Heck, I could write it and compile it on the Pine64 via VNC, if that is what is needed.)

What I need is a "Hello World" or "Blink an LED" guide to get a background app/service going on the Pine64 from my Dev machine that covers:
  • What needs to be installed on my dev machine (software, dependencies, etc.)  and how do I execute builds (command line commands, etc.)? 
  • What language I should use (Needs to read/write to GPIOS, run as a background service, and make Node Red calls.  Minor file IO would also be nice)
  • What do I need to install/configure on the Pine 64 to get the executable to run?
  • What debugging patterns/tools can I use?  (Is there an IDE supporting debugger breakpoints?  Can I pause running code to inspect its state?  Am I limited to logging style debugging similar to on Arduino?  Are there Pine64 emulators that I can test the code with virtual GPIO inputs?) 
  • How do I deploy the compiled executable to run as a background service?  How do I update the executable with a newer executable each time I make a new version?
If I can simply get the above figured out, I can handle the rest of the app.  Its humbling how much of a dunce I feel like that I can't seem to get these basics figured out on my own.

In short, the ideal solution would be a way to code in C# on windows in an IDE and nice debugging on a local emulator.  Minimum solution would enable me to write something I can compile somehow into a Linux executable and at least lets me see some kind of logging-style debugging output.
  Reply
#2
You have three options for programming the gpio(s) on the PineA64+:

1)  sysfs filesystem and bash scripting  /sys/class/gpio/...

2)  RPi-GPIO.PineA64

3)  PineA64-CPP


Forget what you know about x86 Intel hardware;  these are Arm SoC(s);  you need to understand the mux io lines gpio(s).  Also, forget what you know about C#;  this is a perfect world, and windows is not a part of it.

No. (1) above is the ability to export a gpio mux to user space and then read or write its state (value) with a bash script or other wrapper like python.  No. (2) above is the Raspberry PI (like) python interface to the gpio mux lines.  No. (3) above is a fairly recent C++ library for access to the gpio mux lines via C|C++.  

There are many examples (some from myself) in the forum here under Pine64+ ---> Hardware Accessories , POT ---> PI-2 Euler GPIO ports

We have included examples in sysfs, RPi, and C++;  we have shown how to blink the LED lab, run a brushless fan with software pwm, and other examples. 

Also, the PineA64+ is not an MCU.  It is a full blown gnu+linux computer;  you can do the development right on the board;  no need for C#, nor windows anything;  in fact what you know about the Win-Tel platform will just get in your way here.  Start with the three above, look through the forum, and visit us on the irc;  I won't do your work for you, but I can answer specific questions we you get stuck;
marcushh777    Cool

please join us for a chat @  irc.pine64.xyz:6667   or ssl  irc.pine64.xyz:6697

( I regret that I am not able to respond to personal messages;  let's meet on irc! )
  Reply
#3
(07-17-2017, 09:33 PM)MarkHaysHarris777 Wrote: You have three options for programming the gpio(s) on the PineA64+:

1)  sysfs filesystem and bash scripting  /sys/class/gpio/...

2)  RPi-GPIO.PineA64

3)  PineA64-CPP


Forget what you know about x86 Intel hardware;  these are Arm SoC(s);  you need to understand the mux io lines gpio(s).  Also, forget what you know about C#;  this is a perfect world, and windows is not a part of it.

No. (1) above is the ability to export a gpio mux to user space and then read or write its state (value) with a bash script or other wrapper like python.  No. (2) above is the Raspberry PI (like) python interface to the gpio mux lines.  No. (3) above is a fairly recent C++ library for access to the gpio mux lines via C|C++.  

There are many examples (some from myself) in the forum here under Pine64+ ---> Hardware Accessories , POT ---> PI-2 Euler GPIO ports

We have included examples in sysfs, RPi, and C++;  we have shown how to blink the LED lab, run a brushless fan with software pwm, and other examples. 

Also, the PineA64+ is not an MCU.  It is a full blown gnu+linux computer;  you can do the development right on the board;  no need for C#, nor windows anything;  in fact what you know about the Win-Tel platform will just get in your way here.  Start with the three above, look through the forum, and visit us on the irc;  I won't do your work for you, but I can answer specific questions we you get stuck;

Hi Marcus,

Lets write as an article, post on maker blog and also on PINE64 wiki. Thanks

.. TL
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Node Red on the Pine DonFL 0 256 12-16-2019, 04:21 PM
Last Post: DonFL
Photo Pine A64+ from Kick starter running Pi-Hole netHolio 0 355 12-02-2019, 09:36 PM
Last Post: netHolio
  Pine A64+ vs LCD do not boot DDS 2 291 11-25-2019, 11:44 AM
Last Post: tllim
  NetBSD for Pine A64(+) Luke 3 1,345 10-05-2019, 11:04 PM
Last Post: mrgtwentythree
  Can anyone run Boinc on Pine models? MarijusR 6 667 09-11-2019, 06:41 AM
Last Post: letarg
  Working linux distribution that supports BT/Wifi on A64 Roverius 3 385 08-19-2019, 04:47 AM
Last Post: Roverius
  Any way to run 32-bit apps? CarlGundel 2 272 07-09-2019, 02:31 PM
Last Post: CarlGundel
  There is a usable distro for Pine A64? polv89 6 2,607 06-09-2019, 03:32 PM
Last Post: dkebler
  Pine A64 stuck in boot process joey 1 415 05-28-2019, 09:07 PM
Last Post: joey
  dead Pine A64? Truglio 2 666 01-22-2019, 10:06 AM
Last Post: Truglio

Forum Jump:


Users browsing this thread: 1 Guest(s)