News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

IEEE top programming languages 2018

Started by johnsa, August 03, 2018, 03:01:35 AM

Previous topic - Next topic

Vortex

We are living in the golden age of scripting languages. Sadly, assembly is the last on the list.

Raistlin

Not for long - I am working on it (yes I am being mysterious )
Are you pondering what I'm pondering? It's time to take over the world ! - let's use ASSEMBLY...

aw27

We must not forget that Assembly does not mean x86/64 Assembly alone.
Assembly is frequently used in embedded programming as well, most notably with ARM and MIPS processors (AVR also, but not for doing arduino things).

Siekmanski

Quote from: AW on August 03, 2018, 02:26:09 PM
We must not forget that Assembly does not mean x86/64 Assembly alone.
Assembly is frequently used in embedded programming as well, most notably with ARM and MIPS processors (AVR also, but not for doing arduino things).

You can program the Arduino boards with the AVR assembler, just remove the boot loader on the microcontroller.
The Arduino programming environment has his charms and ease of use. ( and no need for a hardware programmer )  :biggrin:
Creative coders use backward thinking techniques as a strategy.

aw27

Quote from: Siekmanski on August 03, 2018, 07:18:17 PM

You can program the Arduino boards with the AVR assembler, just remove the boot loader on the microcontroller.
The Arduino programming environment has his charms and ease of use. ( and no need for a hardware programmer )  :biggrin:

I have done quite a few AVR projects this year all for mechatronics students asking for help in a tutor's online site I cooperate occasionally when I like the theme and nobody else jumps forward.
I have used Arduino Boards, UNO (328P) and At Mega 2560, but not the Arduino Software (not for professionals, they say  ;)). I had to use Atmel Studio which allows coding in ASM or C. Four of the projects were in ASM, but very easy (Fibonacci, reverse a string, Parity, Morse). Only the Morse was done for the board, the others were to run in the simulator.

This was a lot of fun, particularly the C projects because were much bigger - motors, ESP8266, LIS3DH, LM34, NFR2401. I learnt quite a lot.

PS: You don't need a hardware programmer too to program these boards from Atmel Studio.

Siekmanski

 :biggrin:

Yeah, AVR projects are a lot of fun.
I have used the ATtiny and ATmega series in a lot of my projects and all are written in ASM.
Atmel has very good and logical datasheets for their microntrollers.

QuotePS: You don't need a hardware programmer too to program these boards from Atmel Studio.

I guess you mean the chips with the Arduino bootloader installed?

Creative coders use backward thinking techniques as a strategy.

aw27

Yes, AVR is much more enjoyable and documented than ARM. I love it. :t

Quote
I guess you mean the chips with the Arduino bootloader installed?
Yes, I only worked with Arduino boards because I am not good at soldering  :(. My students had to work with the XPlained Mini and other raw stuff so were damaging board after board with the soldering iron  :lol: until got it right.

To program the Arduino from Armel Studio you invoke avrdude.exe with some arguments I have not here.

Raistlin

@AW27: You lecture as well? You never told me.... :t
Without thinking too much, it does all make sense now
Are you pondering what I'm pondering? It's time to take over the world ! - let's use ASSEMBLY...

K_F

Done many small projects with PIC, Atmel, i51 Embedded processor series and can say

While using anything else other than assembler, you create a bug emporium, programs are bloated and eat up the little memory embedded systems have. The developer generally does not know what they are doing.

Using assembler, as in any assembler, you understand the processor, can optimise it more effectively and even after version 1 you have very few bugz compared to C and higher level languages. You have to know what you're doing.

Another thing the IEEE is miss-informing themselves and everyone else about, is VHDL (or HDL) which is growing fast as the 'world' moves into OEM cpus.
Notably the ARM series is a product of HDL if I'm not mistaken - They use the same terminology in their technical descriptions.

HDL - Hardware Description Language. (there is a C version  ::) )
Basically a high level language (Could be called scripting  :icon_mrgreen: ) aimed at the hardware internals of a chip. The next level down is binary bits and bobs.
The compiler coverts text directly into binary bits, optimisation and placement of the bits is hardware specific which can be automated or manually placed.
Place all you bits in one corner and watch smoke come from the that corner of your cpu   :icon_mrgreen:
You create your own cpu's, memory managers, comms blocks.. etc. or you can use already made/tested/certified library blocks $$$.

You'll find HDL used in high end embedded processing - Equipment in aerospace, military, medical and other devices that require high optimisation, and are function specific. This has increasingly filtered through onto the commercial markets in larger numbers.
It's cool stuff  :t
'Sire, Sire!... the peasants are Revolting !!!'
'Yes, they are.. aren't they....'

aw27

Quote
While using anything else other than assembler, you create a bug emporium, programs are bloated and eat up the little memory embedded systems have. The developer generally does not know what they are doing.
Nowadays embedded programming is generally done in C/C++. Chips have much more memory these days.
For Atmel, the most common chip is the 328P which has 32KB flash RAM. The Atmega 2560, which I have used as well has 256 KB Flash and there are chips with much more.
I am not going to talk about ARM, it is much different, more complicated with more variations than the Atmel. I have only dealt with the Cortex M4. ARM ASM programming is more difficult than with the Atmel chips and usually nobody makes full flown ASM too, unless is doing it for fun only.

The market has expanded to no imaginable ways, thinking ARM (or Atmel or other chips) nowadays is thinking about hundred of little gadgets. Incidentally, let me wear my ARM powered smartband and make some jogging.  :badgrin: