Вс янв 26, 2020 11:34:08
ARV писал(а):а еще есть __memx
Вс янв 26, 2020 12:19:03
Вс янв 26, 2020 13:22:00
volatile const uint8_t seg7[] PROGMEM =
{
//'0' '1' '2' '3' '4' '5' '6' '7' '8' '9' 'L' 'H' 'P' 'E' '-' blank
0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, 0x38, 0x76, 0x73, 0x79, 0x40, 0x00
};
....
*(dispBuffer + 0) = pgm_read_byte(&seg7[(uint8_t)binc]);
const uint8_t __flash seg7[] =
{
//'0' '1' '2' '3' '4' '5' '6' '7' '8' '9' 'L' 'H' 'P' 'E' '-' blank
0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, 0x38, 0x76, 0x73, 0x79, 0x40, 0x00
};
*(dispBuffer + 0) = seg7[(uint8_t)binc];
Вс янв 26, 2020 18:58:37
oleg110592 писал(а):Проверте пожалуйста
Вс янв 26, 2020 20:36:16
Вс янв 26, 2020 21:01:46
вы уверены?NStorm писал(а):На те же функции без суффикса _P. Компилятор сам всё сделает.
Вс янв 26, 2020 22:09:37
avr-gcc -mmcu=attiny10 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT TestConst.o -MF dep/TestConst.o.d -c ../TestConst.c
\Temp\ccylzL9l.s: Assembler messages:
\Temp\ccylzL9l.s:31: Error: illegal opcode elpm for mcu avrtiny
Makefile:48: recipe for target 'TestConst.o' failed
make: *** [TestConst.o] Error 1
Build failed with 1 errors and 1 warnings...
const unsigned char green[] PROGMEM = {255, 0, 127, 0, 255};
rgb[1] = pgm_read_byte(&green[colorIndex]);
Вс янв 26, 2020 22:40:42
вы уверены?NStorm писал(а):На те же функции без суффикса _P. Компилятор сам всё сделает.
/tmp/ccX6CWPS.o: In function `strlen_P':
/home/nstorm/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/pgmspace.h:1782: undefined reference to `__strlen_P'
Вс янв 26, 2020 22:48:37
Вс янв 26, 2020 22:55:34
Вс янв 26, 2020 22:56:18
Тулчейн вы обновили, а avr-libc?
Пн янв 27, 2020 09:44:17
t10.c:7:12: error: address spaces are not supported for reduced Tiny devices
7 | const char __flash test2[] = "TEST2";
| ^~~~~~~
#include <stdio.h>
#include <string.h>
#include <avr/io.h>
const char test2[] = "TEST2...123";
int main() {
volatile char test4[12]; // локальная переменная, чтобы не в bss секцию попало
strcpy(test4, test2);
DDRB = test4[1]; / / Просто чтобы проверить.
while (1) { }
}
AVR Memory Usage
----------
Device: attiny10
Program: 98 bytes (9.6% Full)
(.text + .data + .bootloader)
Data: 0 bytes (0.0% Full)
(.data + .bss + .noinit)
...
strcpy(test4, test2);
3a: 4c e0 ldi r20, 0x0C ; 12
3c: e2 e6 ldi r30, 0x62 ; 98
3e: f0 e4 ldi r31, 0x40 ; 64
40: bd 2f mov r27, r29
42: ac 2f mov r26, r28
44: af 5f subi r26, 0xFF ; 255
46: bf 4f sbci r27, 0xFF ; 255
48: 01 91 ld r16, Z+
4a: 0d 93 st X+, r16
4c: 4a 95 dec r20
4e: e1 f7 brne .-8 ; 0x48 <__SREG__+0x9>
DDRB = test4[1];
50: ce 5f subi r28, 0xFE ; 254
52: df 4f sbci r29, 0xFF ; 255
54: 48 81 ld r20, Y
56: c2 50 subi r28, 0x02 ; 2
58: d0 40 sbci r29, 0x00 ; 0
5a: 41 b9 out 0x01, r20 ; 1
...
Disassembly of section .rodata:
00004062 <test2>:
const char test2[] = "TEST2...123";
4062: 54 45 sbci r21, 0x54 ; 84
4064: 53 54 subi r21, 0x43 ; 67
4066: 32 2e mov r3, r18
4068: 2e 2e mov r2, r30
406a: 31 32 cpi r19, 0x21 ; 33
406c: 33 00 .word 0x0033 ; ????
...
Пн янв 27, 2020 10:41:34
Пн янв 27, 2020 11:08:00
Пн янв 27, 2020 12:04:23
Пн янв 27, 2020 12:29:19
Выпуск MPLAB XC8 v2.05 расширил поддержку AVR, объединив многие новые функции компилятора AVR, и вместе с новейшей MPLAB X IDE этот компилятор позволяет программистам разрабатывать код для любого 8-разрядного устройства Microchip.
Пн янв 27, 2020 12:38:55
производитель пишет - это один компилятор
Да и какая разница
Пн янв 27, 2020 12:59:05
Чт фев 06, 2020 10:49:29
Size before:
0 [main] sh 7668 sync_with_child: child 8008(0x19C) died before initialization with status code 0xC0000142
56762 [main] sh 7668 sync_with_child: *** child state waiting for longjmp
/usr/bin/sh: fork: Resource temporarily unavailable
make: *** [sizebefore] Îøèáêà 128
Build failed with 1 errors and 0 warnings...
AVRPROG compatible boot-loader
* Version : 0.85 (Dec. 2008)
* Compiler : avr-gcc 4.1.2 / avr-libc 1.4.6
Чт фев 06, 2020 13:28:30