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

Add io memory for classic parts #1488

Merged
merged 3 commits into from
Aug 14, 2023
Merged

Add io memory for classic parts #1488

merged 3 commits into from
Aug 14, 2023

Conversation

stefanrueger
Copy link
Collaborator

This completes the io definition of memories.

@mcuee mcuee added the enhancement New feature or request label Aug 13, 2023
@MCUdude
Copy link
Collaborator

MCUdude commented Aug 13, 2023

Looks good to me! As you wrote in the docs, the io memory for classic parts is of limited use, since we can access these through a bootloader (Urboot compiled with IO register access perhaps?). But at least, now the io memory section is present!

@mcuee
Copy link
Collaborator

mcuee commented Aug 14, 2023

@stefanrueger

I am not so sure if the following test results are correct or not. It seems to me both usbasp programmer and urboot bootloader can not read the I/O memory of ATmega328P.

-c dryrun works fine.

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1488 -C .\avrdude_pr1488.conf -c usbasp -p m328p -qqt
avrdude> dump io 0 0x10
avrdude_pr1488 error: (dump) error reading io address 0x00000 of part ATmega328P
                      read operation not supported on memory type io
avrdude> quit

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1488 -C .\avrdude_pr1488.conf -c urclock -P COM40 -p m328p -xshowall
avrdude_pr1488: AVR device initialized and ready to accept instructions
0000ffffffff 2022-06-10 21.21 Blink.ino.standard.hex 924 store 31298 meta 34 boot 512 u7.7 weu-hprac vector 0 (RESET) ATmega328P

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1488 -C .\avrdude_pr1488.conf -c urclock -P COM40 -p m328p -qqt
avrdude> dump io 0 0x10
avrdude_pr1488 error: bootloader cannot read from io
avrdude_pr1488 error: (dump) error reading io address 0x00000 of part ATmega328P
                      read operation not supported on memory type io
avrdude> quit

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1488 -C .\avrdude_pr1488.conf -c dryrun -p m328p -qqt
avrdude> dump io 0 0x10
0000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
avrdude> write io 0 0xaa 0x55 0xaa 0x55
avrdude> dump io 0 0x10
0000  aa 55 aa 55 00 00 00 00  00 00 00 00 00 00 00 00  |.U.U............|
avrdude> quit

@stefanrueger
Copy link
Collaborator Author

not so sure if the following test results are correct

They are. io memory of classic parts has no current use as it cannot be externally accessed, and even internal access through a bootloader is only a theoretic possibility as no bootloader known to me supports this. So only interesting for future use, if any. This PR only makes sure all io memories are correctly described should some extension want to use it.

@stefanrueger stefanrueger merged commit 1795371 into avrdudes:main Aug 14, 2023
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants