Author Topic: 8022???  (Read 3267 times)

0 Members and 1 Guest are viewing this topic.

Online Analog KidTopic starter

  • Super Contributor
  • ***
  • Posts: 4045
  • Country: us
  • DANDY fan (Discretes Are Not Dead Yet)
Re: 8022???
« Reply #25 on: September 15, 2025, 03:49:40 am »
I'm going to be programming this under Windows (7).
I really don't want to use Visual Studio.
So what are my choices here?
The "getting started" doc mentioned other IDEs, Eclipse and CLion, but I know nothing about those.
I was hoping this would be simple: install an IDE, fire it up and go.
 

Online Analog KidTopic starter

  • Super Contributor
  • ***
  • Posts: 4045
  • Country: us
  • DANDY fan (Discretes Are Not Dead Yet)
Re: 8022???
« Reply #26 on: September 15, 2025, 08:29:24 pm »
I'm about ready to order this board, the Raspberry Pi Pico H.

I've read through the "getting started" doc and I'm still not sure what software I'll need to use this under Windows.
Can someone here enlighten me regarding that?
Again, I'd really rather not use Visual Studio if I can avoid it.
And I'll be programming this in assembly language, not C/C++.
 

Offline ledtester

  • Super Contributor
  • ***
  • Posts: 3849
  • Country: us
Re: 8022???
« Reply #27 on: September 16, 2025, 01:25:23 am »
I'm going to be programming this under Windows (7).

I would double check to see if the Pico toolchain will work under Win7. AI says it is not officially supported but says there are work-arounds.

Also see this:

https://github.com/raspberrypi/pico-feedback/issues/118
 

Online Analog KidTopic starter

  • Super Contributor
  • ***
  • Posts: 4045
  • Country: us
  • DANDY fan (Discretes Are Not Dead Yet)
Re: 8022???
« Reply #28 on: September 16, 2025, 01:50:29 am »
OK, so assuming one can use the workarounds described on that page, I still need to know:
Can I upload an assembly-language program to the micro using that software?
What additional software, if any, would I need?

I'm not about to buy the damn thing and then discover that I'll need to spend 5,000 hours getting the goddamn thing to work.
Life's too fucking short for that. I need a sure-fire recipe that'll work here, otherwise, fuggedaboudit.
 

Offline saipan59

  • Contributor
  • Posts: 45
  • Country: us
Re: 8022???
« Reply #29 on: September 16, 2025, 02:23:20 pm »
Another vendor option:
I have built *dozens* of projects over the years with T.I. stuff (before that, I was all in to Microchip, in the pre-Atmel days). The other major vendors are pretty much the same, unless you have a VERY specific (unusual) requirement that drives you to a certain vendor (not likely!).

Here are the steps:

1) Buy an eval board, such as this one (there are a bunch of others, the higher performance such as the MSPM0 series parts are ARM core):
https://www.ti.com/tool/MSP-EXP430F5529LP
Here's the UG for the board: https://www.ti.com/lit/ug/slau533d/slau533d.pdf?ts=1758012030082 .
Or do this one, if you really want a through-hole part (limited functionality):
https://www.ti.com/tool/MSP-EXP430G2ET

2) Do a free download of "Code Composer Studio". It is Eclipse based (the same for Microchip and other vendors, I think). But you said "Windows 7" - check to make sure the IDE supports that.

3) Move past your aversion to coding in C. With modern parts, only a very, very special situation justifies working in Assembly. In C, there are huge libraries of code to use, with examples of how to use all of the peripheral features.

4) Plug the board into a USB port on you PC.

Pete

 

Offline saipan59

  • Contributor
  • Posts: 45
  • Country: us
Re: 8022???
« Reply #30 on: September 16, 2025, 02:59:49 pm »
>Do a free download of "Code Composer Studio". It is Eclipse based (the same for Microchip and other vendors, I think). But you said "Windows 7" - check to make sure the IDE supports that.

FYI (just checked): For 64-bit Windows 7, I would use CCS V10 (many older versions are on the download page). For 32-bit Win7, you have to go earlier, but I didn't check how far back. Possibly V8(?).

Pete
 

Online Analog KidTopic starter

  • Super Contributor
  • ***
  • Posts: 4045
  • Country: us
  • DANDY fan (Discretes Are Not Dead Yet)
Re: 8022???
« Reply #31 on: September 16, 2025, 06:48:37 pm »
3) Move past your aversion to coding in C.

No. Just no.
And that's a hard no.

I love this place: you get all the answers except the one to the specific question you asked.
 
The following users thanked this post: cfbsoftware

Offline ledtester

  • Super Contributor
  • ***
  • Posts: 3849
  • Country: us
Re: 8022???
« Reply #32 on: September 16, 2025, 09:11:02 pm »
For the RPi Pico, I would first try running this:

https://www.raspberrypi.com/news/raspberry-pi-pico-windows-installer/

and see if all of the examples compile. You can do this without a Pico.

This video will give you an idea of what the development process will be like:

How to Write ARM Assembly Language for the Raspberry Pi Pico
https://youtu.be/ZS_Cbmf3z-U

Again, you can try this without having a Pico.

If that works for you, the only issue will be getting the Pico recognized by the Win7 USB subsystem, and that's where you might find some help in the Raspberry Pi forums, e.g.:

https://forums.raspberrypi.com/viewtopic.php?t=300633
 
The following users thanked this post: cfbsoftware, Analog Kid

Offline saipan59

  • Contributor
  • Posts: 45
  • Country: us
Re: 8022???
« Reply #33 on: September 17, 2025, 01:00:42 am »
3) Move past your aversion to coding in C.
No. Just no. And that's a hard no.

You wrote in your initial post:
>I'm asking this as somewhat of a n00b in the field (I've programmed the SX-28 and that's it).
>...are there any modern microprocessors that have on-board ADCs that I might look at? PICs?

Based on your own statements and questions, I suspect you don't understand the learning curve involved in going directly to assembly on a modern part. The SX28 is around 25 years old, and it is somewhat unique. Your experience with that won't help you a lot.
You are apparently unfamiliar with what the modern chips do, and how they do it.
Since you're unwilling to use C as you say, then you should start with one of the platforms that supports BASIC directly. Otherwise, you will struggle with every detail, and there are a LOT of details.

Another approach to satisfy your 'assembly urges' could be to use one of the 'classic' vintage MPU chips, such as 6502, 6800-series, or perhaps 8085. Then assembly is completely practical and useful. The downside would be that you have buy or build a HW platform that has the memory and ADC and such that you want, a way to load code, etc. But you could do everything initially in an emulator...

Meanwhile: I understand your attraction to assembly. But can I ask why you reject higher-level languages? Many years ago, folks would commonly use assembly to get the most "efficiency" (code space, and/or speed). But these days, in *almost every case*, a C compiler will make more efficient code than you or I can. And note that 'code space' is very often NOT a concern, like it was in the 70's and 80's.

Pete
 

Online Analog KidTopic starter

  • Super Contributor
  • ***
  • Posts: 4045
  • Country: us
  • DANDY fan (Discretes Are Not Dead Yet)
Re: 8022???
« Reply #34 on: September 17, 2025, 01:23:45 am »
Welll, all I can say is that for me, assembly language is a clear preference. I've written C, BASIC (a long time ago), and was once a paid (!) COBOL programmer.

I'm quite adept at x86 assembler in particular; I write a lot of Win32 GUI programs using it. I realize there would be a learning curve to use ARM assembly, but really, how different can it be? Even SX-28 was a bit weird, especially the conditional jumps (which all merely skipped the next instruction if true), but i managed to pretty well master it. Besides, I think it would be fun to learn a new assembler. (And no, I'm not a masochist!)

Using assembly language for me, BTW, has very little to do with performance, oddly enough (though it can be used to improve that metric if needed). I just like it, for some strange reason.

My bad; when I said I was a "n00b in this field" I meant with regard to microprocessors like the Pico, etc. I've done plenty of x86 (desktop) programming.
« Last Edit: September 17, 2025, 01:25:23 am by Analog Kid »
 

Offline saipan59

  • Contributor
  • Posts: 45
  • Country: us
Re: 8022???
« Reply #35 on: September 17, 2025, 01:51:09 am »
>Welll, all I can say is that for me, assembly language is a clear preference.

OK then. So it appears that your main issue is in your unfamiliarity with what the modern chips are capable of, and the tool suites that go with them.

So here's an offer of help:
If you can 'outline' a typical project that you wanted to implement (a few sentences or bullet points), I could respond with a paragraph or so of how it can be achieved using the T.I. parts and tools [T.I. being the modern vendor I'm very familiar with, aside from the old 6800 and 6502]. Anything I describe based on T.I. would be nearly identical with other vendors, such as Microchip, Renesas, etc.

Pete
 

Online Analog KidTopic starter

  • Super Contributor
  • ***
  • Posts: 4045
  • Country: us
  • DANDY fan (Discretes Are Not Dead Yet)
Re: 8022???
« Reply #36 on: September 17, 2025, 02:22:33 am »
Welll, I'd like to be able to play with an inbuilt ADC, so I think that precludes those Jurassic processors. (My original question was about the 8022, but that seems to be a dead end, unfortunately.)

Not that I wouldn't like to play with those ancient chips: ackshooly, I've wanted to try out the Z80 for a long time now.
So if you'd like, maybe you could suggest what would be needed to use that micro. Typical applications would mostly involve timers (using a crystal oscillator timebase).

But I'd like to get started with the Pico mentioned before, so it'd be really nice if someone could tell me definitively what software I'd need to use that under Windows 7 using assembly language.
 

Offline saipan59

  • Contributor
  • Posts: 45
  • Country: us
Re: 8022???
« Reply #37 on: September 17, 2025, 03:20:30 am »
>I've wanted to try out the Z80 for a long time now.
>So if you'd like, maybe you could suggest what would be needed to use that micro. Typical applications would mostly involve timers (using a crystal oscillator timebase).

A Z80 is just a classic MPU. Basically ALL features beyond the core processor require separate chips: RAM, ROM, Timer, UART, GPIO -- all of those are 1 or more separate chips, plus some basic logic for things like memory addressing.
So, unless you do it in emulation, you need to buy or build a HW platform (I'm sure folks sell kits and such), and then you need a way to load/burn code into it. I don't really know what's available that is ready-to-go.
Over the years, when I experimented with 6502, 6800, or 6809, I built my own boards, and also built my own EEPROM-burner that talks to my PC via USB (the burner is based on a T.I. MSP430 eval board).
As an example, last year I designed a 6809 board (with EEPROM, RAM, GPIO, etc.), and also a 'daughter board' that has a vintage ADC chip on it.

Pico: I have no experience with it, but it's a ARM Cortex M0, which is much like some of the T.I. parts I use. At a glance at the Pico info online, the smart way to go is (I think) to create an empty C code project, then call an assembly function which does everything you care about. This is very smart, because the C startup will take care of certain essentials. It's the same with the T.I. parts that use an ARM core: a 100% assembly project is not so easy to create, but an empty C project is trivial, then calling assembler code is supported, all within the IDE.
Conversely, with the MSP430-series parts, they support the very simple creation of a bare-bones assembly project *directly* in the IDE. Here's an example that I just made in a couple of minutes (I edited out whitespace and blank comment lines). All I did was tell the IDE to make me a "blank assembler project":

; MSP430 Assembler Code Template for use with TI Code Composer Studio
            .cdecls C,LIST,"msp430.h"       ; Include device header file
            .def    RESET                   ; Export program entry-point to make it known to linker.
            .text                           ; Assemble into program memory.
            .retain                         ; Override ELF conditional linking and retain current section.
            .retainrefs                     ; And retain any sections that have references to current section.
RESET       mov.w   #__STACK_END,SP         ; Initialize stackpointer
StopWDT     mov.w   #WDTPW|WDTHOLD,&WDTCTL  ; Stop watchdog timer
; Main loop here
                   
; Stack Pointer definition
            .global __STACK_END
            .sect   .stack
; Interrupt Vectors
            .sect   ".reset"                ; MSP430 RESET Vector
            .short  RESET
           
Pete
 

Offline Nominal Animal

  • Super Contributor
  • ***
  • Posts: 8108
  • Country: fi
    • My home page and email address
Re: 8022???
« Reply #38 on: September 17, 2025, 05:44:11 pm »
Apologies for the long wall of text.

In that case: are there any modren microprocessors that have on-board ADCs that I might look at [... and] code in assembly language
I started with Atmel AVRs, specifically the ones with native USB 1.1 interface: AT90USB1286 and ATmega32U4 in particular.  AVR assembly is easy, and you have plenty of registers (which is the main difference to x86 instruction sets).  At that time, Atmel wasn't part of Microchip, so I used avr-gcc and avr-libc; these are an excellent starting point since avr-libc header files describe the registers and its crt (C runtime) files contain the assembly needed to initialize the microcontroller (including copying initialized variables from Flash to RAM), and avr-gcc contains an assembler (GNU as for AVR).  You can basically follow standard avr-gcc programming procedures, but just feed assembly source .s files to gcc.

ARMv7e-m architecture (ARM Cortex-M0/M3/M4/M7) as used on many microcontrollers is not that different, really, except that one must understand that they have two instruction set modes: A32 (.arm assembly directive), and T32 (.thumb assembly directive), T32/Thumb yielding much more compact code.  Both can be used in the same assembly source file when the Unified Assembly Language is used (which is what arm-gcc and GNU as for ARM use).  When you understand that, you won't get confused looking at the ARMv7-M architecture Reference Manual and the instruction sets' documentation.

The problem with Cortex-M microcontrollers is that most have a relatively complex/large bootloader, not only handling the Flash-to-SRAM setup stuff, but also an option to load new firmware via USB (which many have as a built-in peripheral).  One interesting exception is the Teensy 4.x series based on NXP i.MX RT1062 (512k+512k of RAM, runs at 600 MHz), as the proprietary bootloader chip (a separate preprogrammed microcontroller you can buy from pjrc.com also), because the separate bootloader chip handles new firmware uploads by copying the necessary firmware to RAM via JTAG, so your own firmware only needs to handle the bootup and runtime preparation stuff, which is open source code at Paul Stoffregen's github.  I use these extensively as ad-hoc tools (because the USB interface can sustain 25+ Mbytes/sec to host, or from host to Teensy — over 200 Mbits/s — using standard USB serial drivers and simple code written in Arduino environment in C/C++) because of their sheer computing and I/O power and development simplicity.  An assembly loop toggling specific output pins in the same bank can reach about 180 MHz frequency, if I recall correctly...

Even though I've always programmed these mostly in C/C++, there are still places like low-latency interrupts with simple tasks, like updating a single variable, where assembly can make a big difference (for example, by using minimal registers).  One can even tell GCC to not use specific registers at all (for AVR and ARMv7-M), so one can reserve those for use in the minimal-latency interrupts.

My own preferred development toolchain is based on plain Makefiles (and GNU make) and a gcc- and binutils-based toolchain.  I do have written an occasional GDB plugin for examining memory structures easier (and there is a Teensy GDB proxy you can use to do that in real time), my bugs tend to nowadays be either trivial (off by ones, typos) or complicated interactions between different parts of the code, so I rarely use a debugger anymore.  Even for the code editor, syntax highlighting tends to suffice, although for larger projects split over many files I will reach for an editor that can track C/C++ keywords across files.

All that said, while I know all of the above works in Windows also, I haven't used Windows in a couple of decades, so cannot offer any detailed advice there.  In particular, I'm not sure which exact installers to use.  I do know that if you used a Teensy, installed Arduino 2.3.0 or newer, and latest Teensyduino, you'd get a full tested working toolchain installed, that would work perfectly for purely assembly code also, when compiled using GCC (which simply calls its companion as assembler with all the correct command-line options).

If you do tend towards Teensy 4.0 (which are designed by PJRC.com but manufactured nowadays by Sparkfun), I do recommend you get two of them, or perhaps a 4.0 and a 4.1, with two 8 MB PSRAMs and the Ethernet Kit for the 4.1.  They have the exact same core, just expose different peripherals, so if you encounter an oddity, you can verify it happens with the other one also and thus exclude hardware issues in one unit only.

I prefer microcontrollers with native USB interfaces and not USB-to-Serial bridges (like on most Arduino boards), because my very first microcontroller project was an arcade plank (using AT90USB1286, Teensy 2.0++) with a proper arcade microswitch joystick and buttons, so I could play online Flash games.  It had a 16-position absolute encoder connected to four input pins, so I could select the layout at run time.  You see, most online games use keyboard keys for controls, so this one behaved as one, and the layout just selected between predefined sets.  Because the USB interface is native, I could use USB HID protocol, and not need any drivers on any operating system, just plug it in and go.  (Later on, when USB 3 came along, some USB 3 host chipsets have issues with USB 1.1 Full Speed devices, and need an USB 2.0 hub in between to work properly.  This just in case you play with AVRs or other microcontrollers with USB 1.1 support: an USB 2.0 hub in between almost always solves the compatibility issues.)
ATmega32U4 is still widely used for custom keyboard projects.

Another microcontroller family you might have much fun with would be WCH CH32X033 and CH32X035 RISC-V (QingKe core), with native USB, working on either 5V or 3.3V supply (and corresponding CMOS logic), and only need a single supply decoupling cap, no crystal or anything (see this OSHW CH32X035F7P6 example dev board).  Several CH32X035 models have USB PD capability (see e.g. this OSHW CH32X035 USB PD tester), making it particularly interesting for USB-C PD powered projects.  In Windows, you do need to install the CH372 driver for WCH microcontrollers. There is an Arduino CH32X035 core for it, which includes everything needed to bring it up including the C runtime (crt files).  I do believe the RISC-V instruction set itself is very well designed and nice to use, just haven't used it in assembly in enough anger yet to be absolutely certain.

If you want to make your own boards at JLCPCB/PCBWay/others, I'd say CH32X035 are the way to go.  These even have the bootloader in ROM, triggered by pulling UDP (USB+) to VCC when powering it, which allows uploading a new firmware with just a simple Python script; and the $8 WCH-LinkE from official WCH AliExpress store can be used with the two-wire debug interface (SWCLK and SWDIO) for debugging and firmware uploads.  Again, the toolchain would be based on GNU GCC, just with the RISC-V target this time.  Feed gcc with assembly source files, and it will call as with all the necessary command line options to build the binaries (in ELF object file format) correctly.
 

Offline ledtester

  • Super Contributor
  • ***
  • Posts: 3849
  • Country: us
Re: 8022???
« Reply #39 on: September 17, 2025, 10:28:51 pm »
The Arduino boards (i.e. Uno, Nano, Mega) are very easy to get into with the Arduino IDE.

According to AI, the latest version of the Arduino IDE which is compatible with Win7 is 1.8.19 - the final release of the 1.x series:

https://forum.arduino.cc/t/need-arduino-ide-version-2-2-1-for-window-7-32-bit/1186697

You can download 1.8.19 from the official Arduino web site (look for "Legacy IDE").

https://www.arduino.cc/en/software/


 

Offline SteveThackery

  • Super Contributor
  • ***
  • Posts: 2358
  • Country: gb
  • 50 year novice
Re: 8022???
« Reply #40 on: September 20, 2025, 08:22:38 am »
3) Move past your aversion to coding in C.

No. Just no.
And that's a hard no.

Yes, just yes. Provided you stay away from pointer arithmetic, 'C' is piss-easy to learn. In fact you claim to be familiar with it already. Your refusal to even consider it is irrational. Prejudice and irrational thinking has no place in the world of electronics, or indeed any other field of science and technology.

The simplest solution to your initial request by far is Arduino. It ticks every box, especially in terms of a turnkey solution, which you appear to want. Download the Arduino IDE, plug in a Nano Every or Uno R3 with a USB cable, and that's it - you are up and running. And if only you would dump your anti-'C' prejudice you could get straight on with your projects.
« Last Edit: September 20, 2025, 11:50:47 am by SteveThackery »
 

Online Ian.M

  • Super Contributor
  • ***
  • Posts: 13911
Re: 8022???
« Reply #41 on: September 20, 2025, 01:08:17 pm »
Disregarding anti 'C' prejudice, its trivial to write a whole program in AVR assembly language and build it under the Arduino IDE using the GNU AVR assembler.  You simply need a sketch that's totally empty except for documentation comments, and an assembly source file in the same folder called main.S (the name and capital S is important) containing an entry point
Code: [Select]
.global mainwhich override the arduino environment's main function, and thus the compiler's startup code will jump to your assembly main: label.

You can do it all from the classic Arduino IDE without fiddling with files externally - simply start a new sketch, delete *ALL* the boiler plate code it gives you then use the dropdown menu to the far right of the tab title to add a new tab.  It will ask for the name so enter main.S and its ready for you to enter  assembly language code.

Blink example for ATmega328P based boards with the built-in LED on D13 attached.

There is however one fly in the ointment.  The Arduino environment uses Timer 0 for various housekeeping purposes and defines an ISR for its overflow, unfortunately without the weak attribute, which clashes with any Timer 0 overflow ISR you attempt to create.
« Last Edit: September 20, 2025, 01:16:39 pm by Ian.M »
 
The following users thanked this post: SteveThackery

Online Analog KidTopic starter

  • Super Contributor
  • ***
  • Posts: 4045
  • Country: us
  • DANDY fan (Discretes Are Not Dead Yet)
Re: 8022???
« Reply #42 on: September 20, 2025, 05:53:02 pm »
3) Move past your aversion to coding in C.

No. Just no.
And that's a hard no.

Yes, just yes. Provided you stay away from pointer arithmetic, 'C' is piss-easy to learn. In fact you claim to be familiar with it already. Your refusal to even consider it is irrational. Prejudice and irrational thinking has no place in the world of electronics, or indeed any other field of science and technology.

No. Just no.
I know C; I've written plenty of C code (in another lifetime).
I have nothing against C for other people; it's a fine high-level language. I just don't like writing it myself.
It's not out of ignorance.
I prefer assembly language.
(Pointer handling is a piece of cake using it.)
And I definitely don't need scolds like you telling me what I should or shouldn't do, in the name of science, technology or anything else.
 
The following users thanked this post: cfbsoftware

Online Analog KidTopic starter

  • Super Contributor
  • ***
  • Posts: 4045
  • Country: us
  • DANDY fan (Discretes Are Not Dead Yet)
Re: 8022???
« Reply #43 on: September 21, 2025, 08:25:57 pm »
[ Specified attachment is not available ]
For the RPi Pico, I would first try running this:

https://www.raspberrypi.com/news/raspberry-pi-pico-windows-installer/

and see if all of the examples compile. You can do this without a Pico.

Installing it now. My god, what a bloated package that is! Download is ~1/3GB. Taking forever to unpack.
Uh-oh: got the first error alert:



I went ahead with the installation anyhow. It ground on for a while, then I got this message:



OK, I'm done with that. 2 strikes and you're out. As I said, life is just too god-damned short for me to be farting around with stuff like this.

I want a package, ideally not a bloated whale weighing close to a gigabyte, that installs cleanly.
Am I asking too much? Ferchrissakes, it's fucking 2025 already! Is this really the best we can do?
Or are programmers really all masochists?
Sheesh.

Having vented, I do appreciate you having taken the time to put together a possible solution for me. Unfortunately it doesn't seem to be what I want.
And I wanted to bring some closure to this thread by replying to you; I hate when someone asks a question here, gets a reply and is never heard from again.

So I'm still searching for something, some toolchain, which would fit my requirements and allow me to easily install and get up and running.

If anyone knows of such a solution I'm all ears.
« Last Edit: September 21, 2025, 08:32:10 pm by Analog Kid »
 

Offline SteveThackery

  • Super Contributor
  • ***
  • Posts: 2358
  • Country: gb
  • 50 year novice
Re: 8022???
« Reply #44 on: September 21, 2025, 09:10:03 pm »
And I definitely don't need scolds like you telling me what I should or shouldn't do, in the name of science, technology or anything else.

Oh, for goodness' sake! Calm down! I'm not "telling" you anything; I'm making the case for an alternative solution, hoping you will give it further consideration.

Do you really suppose I give a fuck what you end up doing?

PS: Scroll up a few messages. Ian.M has given you the solution.
« Last Edit: September 21, 2025, 09:13:47 pm by SteveThackery »
 

Offline saipan59

  • Contributor
  • Posts: 45
  • Country: us
Re: 8022???
« Reply #45 on: September 21, 2025, 09:18:06 pm »
So I'm still searching for something, some toolchain, which would fit my requirements and allow me to easily install and get up and running.
If anyone knows of such a solution I'm all ears.
Repeating a sort-of summary of one of my earlier replies:
- The T.I. Code Composer Studio should be around 100 MB. I've been using it for about 15 years, never had any big install issues that I can recall. If you're on Win7, you should install an older version (probably V8). Many versions are on the TI site.
- Use one of the MSP430 eval boards (they call them "LaunchPads"). Several versions available, starting at around $10 I think. A fancier one might be closer to $20. The T.I. site is a little awkward to navigate - let me know if you want a direct pointer.
- In CCS with an MSP430, the IDE lets you create an "empty assembler project" with just a few clicks. See the one I posted previously.
- The LaunchPad comes with a short USB cable to plug into your PC. No other HW is needed to write and test some code. Even the simplest LaunchPads have an LED that you can blink. Some boards have cooler gadgets on-board.
- You have mentioned wanting ADC functionality. I think it's safe to say that ALL the relevant chips will have (as a minimum) a 10-bit ADC. Some are 12-bit or more, and some do relatively high sample rates.
- After some experience with the (simpler) MSP430, you can get a LaunchPad that has one of the ARM-based parts on it (but note that from what I see, the assembly-only support is 'limited' on those parts, but it's easy to just do an empty C project and then call assembly routines).

The above meets your requirements, right?

It is likely that the other major MCU vendors have very similar stuff to what I described above. I suspect (not sure) that the "issue" with the Pico (and similar) is that it's an entire "ecosystem" that is trying to be everything for everybody. So perhaps an advantage of using the chip vendor's tools is that they are focused on doing mostly just what the chip can do.

Pete
 

Online Analog KidTopic starter

  • Super Contributor
  • ***
  • Posts: 4045
  • Country: us
  • DANDY fan (Discretes Are Not Dead Yet)
Re: 8022???
« Reply #46 on: September 21, 2025, 10:09:11 pm »
PS: Scroll up a few messages. Ian.M has given you the solution.

OK: that post says:

Disregarding anti 'C' prejudice, its trivial to write a whole program in AVR assembly language and build it under the Arduino IDE using the GNU AVR assembler.  You simply need a sketch that's totally empty except for documentation comments, and an assembly source file in the same folder called main.S (the name and capital S is important) containing an entry point
Code: [Select]
.global mainwhich override the arduino environment's main function, and thus the compiler's startup code will jump to your assembly main: label.

You can do it all from the classic Arduino IDE without fiddling with files externally - simply start a new sketch, delete *ALL* the boiler plate code it gives you then use the dropdown menu to the far right of the tab title to add a new tab.  It will ask for the name so enter main.S and its ready for you to enter  assembly language code.

Blink example for ATmega328P based boards with the built-in LED on D13 attached.

There is however one fly in the ointment.  The Arduino environment uses Timer 0 for various housekeeping purposes and defines an ISR for its overflow, unfortunately without the weak attribute, which clashes with any Timer 0 overflow ISR you attempt to create.

The Arduino part I can figure out (I'm assuming most any Arduino micro will work, yes?).
But the software: what exactly is it (the Arduino IDE and the GNU AVR assembler)? Where do I get these? and I'm assuming Windows here, not Unix, right? (Whenever I see "GNU" I assume Unix.)

I don't like not being able to use the timer interrupt. So that's a point against it.
 

Online Ian.M

  • Super Contributor
  • ***
  • Posts: 13911
Re: 8022???
« Reply #47 on: September 21, 2025, 11:07:59 pm »
See Ledtester's reply #39. The Arduino IDE bundles the GNU avr-gcc toolchain, including the avr-as assembler.  You can use the IDE's board manager to install toolchains for other processors e.g this Raspberry Pico one: https://github.com/earlephilhower/arduino-pico
and a similar empty sketch + main.S approach should work for Pico ARM assembly language code.

YMMV, as toolchains from 2020 onwards are increasingly less likely to install and run properly on Win7. . .  :horse:
 

Offline cfbsoftware

  • Regular Contributor
  • *
  • Posts: 154
  • Country: au
    • Astrobe: Oberon IDE for Cortex-M and FPGA Development
Re: 8022???
« Reply #48 on: September 21, 2025, 11:20:29 pm »

So I'm still searching for something, some toolchain, which would fit my requirements and allow me to easily install and get up and running.

If anyone knows of such a solution I'm all ears.
Unfortunately your specific requirements do not appear to be flexible enough to make that happen. If and when you are able to remove "Windows 7" and "Assembler" from your requirements I would suggest you try our complete integrated development system (NOT a "toolchain"), Astrobe, that allows you to edit, compile, link and run your code written in a high-level language (NOT "C") and can literally be installed in a couple minutes. Believe it or not, the installation setup file is less than 3 MB (NOT GB). That and a 64-bit Windows PC is all you need. This is all thanks to Prof Niklaus Wirth. This guy explains it a lot better than I could:

https://berthub.eu/articles/posts/a-2024-plea-for-lean-software/
« Last Edit: September 21, 2025, 11:56:38 pm by cfbsoftware »
Chris Burrows
CFB Software
https://www.astrobe.com
 

Offline Nominal Animal

  • Super Contributor
  • ***
  • Posts: 8108
  • Country: fi
    • My home page and email address
Re: 8022???
« Reply #49 on: September 21, 2025, 11:34:39 pm »
Whenever I see "GNU" I assume Unix.
That definitely explains the difficulties you're having.  One would need to rely on facts to get this kind of stuff going, instead of relying on incorrect emotive assumptions.  Hint: consider the recursive acronym from which GNU comes from: GNU is not Unix.  And no, it's not Linux either.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf