Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
suffix
Jul 27, 2013

Wheeee!

Mr Dog posted:

It's a pity that putting together an ARM toolchain is much much more painful than it strictly needs to be or I'd just advise hobbyists to put one together.

Get a board from Olimex that has an MCU and connector set you like
Get a JTAG pod supported by OpenOCD
Compile the toolchain
Write a makefile
Write a link script
Write a crt

Unfortunately it requires a fair bit of research work so it's probably more trouble than it's worth. I might write some poo poo up about my experiences in this regard some other time, but I'd argue that if you're doing this for fun and don't care about the low-level poo poo then you're kind of missing the point.

is codesourcery still a thing?
the last time i did anything serious with arm you couldn't use mainline gcc, you had to download a specific two releases old version of codesourcery, or your program would crash

Adbot
ADBOT LOVES YOU

suffix
Jul 27, 2013

Wheeee!

Sagebrush posted:

poll: is it pronounced "A T Tiny" or "at tiny"? "A T Mega" or "at mega"?

i pronounce the letters individually but someone else i know pronounces it at-whatever and it drives me up the wall

at-mega, as in atmel

suffix
Jul 27, 2013

Wheeee!

eschaton posted:

so the Intel Edison stuff, with the Arduino board has an Arduino-compatible IDE. how should I go about figuring out what all of the Arduino stuff actually maps to in terms of memory-mapped I/O (or whatever) so I can wire it up to Lisp instead?

oh, also, SBCL runs OK on the board. not great, at least in comparison to my MacBook Pro (i7), but acceptably well and probably a lot better than on Raspberry Pi.

here's a cool paper about writing code for a space probe back in 1999:

Like all spacecraft, DS1 placed constraints on compu-
tational and telecommunication bandwidth (both uplink
and downlink) resources. For computational resource,
DS1 has a total of 128 MB RAM, 16 MB EEPROM,
and a 20 MHz RAD6k. During the RAX experiment
time, the uplink and downlink data rates were about 1
kbps and 4 kbps, respectively. Based on early estimates,
RAX was allocated 32 MB of RAM, 16 MB of file space
and up to 45% of the CPU. At the time of this alloca-
tion it was not clear if RAX could meet these resource
constraints.

To fit within the 32 MB memory allocation and the CPU
fraction constraints, the RAX team thoroughly analyzed their
code for memory and performance inefficiencies and
employed a "tree-shaking/transduction" process to the Lisp
image. The analysis is, of course, common for any high
performance software. However, transduction is Lisp-
specific and arises from the tight coupling of the Lisp
runtime and development environments. Transduction
removes the unneeded parts of the development
environment, e.g., the compiler, debugger, windowing
system. The result is a significantly smaller image, both in
terms of file system and runtime memory. During RAX
testing, peak memory usage was measured at about 29 MB,
which was more than was actually observed in flight.

To reduce the uplink time and the spacecraft file sys-
tem usage, we employed a custom Lisp image that sup-
ported ground-based compression and spacecraft-based
decompression.
Upon completion of the transduction process the RAX Lisp
image was compressed by a factor of about 3 to 4.7 MB
and uplinked to the spacecraft. On-board decompression
was initiated at the start of each RAX run, with the file being
inflated directly into the 32 MB RAX memory space. Use of
this custom compression drastically reduced the file uplink
time and kept the RAX file space usage within the agreed
upon limits.

http://www-aig.jpl.nasa.gov/public/planning/papers/rax-results-isairas99.ps

suffix
Jul 27, 2013

Wheeee!
you could use all 8 and show positive values like this
g g g . . . . .

and negative values like this
. . . . . . r r
(it's color-blind-friendly!)

and use pwm to scale the intensity of the outermost light for fractions, or even just blink it

logarithmic may be good anyway

e: blinking is annoying because it attracts attention but it would look cool if the value is moving quickly because it's like
blink blink blink blink blinkblinkblinkblink *solid*, next light starts blinking

suffix fucked around with this message at 20:46 on Mar 7, 2015

suffix
Jul 27, 2013

Wheeee!
protocol buffers require a schema, but will be smaller
if you want to use message pack but need to optimize for size you'll end up giving fields one-letter names

suffix
Jul 27, 2013

Wheeee!

JawnV6 posted:

m4

im in enough fights with my tools that I don't want to add another language though. and there's actually another programmer around this time, so I don't have the luxury/curse of writing both sides

here's the wire format for protocol buffers, fwiw
https://developers.google.com/protocol-buffers/docs/encoding

it wouldn't be that hard to mash together valid messages ad-hoc if you're just sending

if you're receiving it's sketchier but i'm pretty sure there exists c bindings, even if they're not official

Adbot
ADBOT LOVES YOU

suffix
Jul 27, 2013

Wheeee!

gonadic io posted:

Also it runs arm so it's fairly easy to get rust to compile on!

I bought a CO2 tank, a regulator, some solenoid valves, and a gyroscope chip. Here's hoping that I actually do something with it

i tested compiling and running rust on the m0-based microbit based on https://github.com/SimonSapin/rust-on-bbc-microbit,
but then i realized i didn't have time to reimplement everything i needed from scratch so i just used python

  • Locked thread