Вс янв 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
:101C000011241FBECFE5D4E0DEBFCDBF20E0A0E6AB
:101C1000B0E001C01D92A03AB207E1F727D08DC114
:101C200024C05F9BFECF8CB10895A89AEFE9FFE036
:101C30003197F1F700C000005D9BFECF8CB98FE9B2
:101C40009FE00197F1F700C00000A898089581E493
:101C5000ECDF86E5EADF82E5E8DF82E4E6DF8FE4B9
:101C6000E4DF8FE4E2DF84E5E0CF0895A09AA8984E
:101C7000F894A8950FB6F894A89581B5886181BDB0
:101C800011BC0FBEBA98C29A10BC87E689B988E128
:101C90008AB986E880BDC0E0D0E000E010E05F9B3C
:101CA00003C08CB1833579F0CC3281E0D80718F0CD
:101CB000C298F80109958FE39CE90197F1F700C0FC
:101CC00000002196ECCFC3DFF12CC0E0D0E0A8E10A
:101CD000BA2EBCE0AB2E13E0912E01E1E02E882459
:101CE000839485E0282E9DDF813611F489E50EC1AD
:101CF000813441F496DFC82FD0E0DC2FCC2791DF70
:101D0000C82BECC0823631F489E58FDF80E08DDFAF
:101D100080E4FCC0823409F062C083DF82DF582E89
:101D200080DF382E00E610E06801412C451410F4E5
:101D300078DF01C08FEFF60181936F014394F0E4E7
:101D40004F12F4CF87E7F812BDC096E4391231C0C4
:101D5000AE0160E070E0440F551F661F771F2091B1
:101D60006000DB01CA01E801E98130E03E2BFC01A3
:101D7000090180925700E89511240296A11DB11D1A
:101D80005A945A940E5F1F4F552019F0E80128818C
:101D9000EACFFA0120925700E89507B600FCFDCF84
:101DA000E0925700E895B695A79597958795EC0131
:101DB00095C0F5E43F1292C0452C6E01F801619187
:101DC0008F01C601ADD0FFEFCF1ADF0A4A94411050
:101DD000F5CF21968FEF850DC80FD11D7FC08736B7
:101DE00009F044C01EDF1DDFD82E1BDF863459F5F5
:101DF000CE01A0E0B0E02C013D01440C551C661C56
:101E0000771C8FEF48168BE158066104710428F4A3
:101E1000F20185919491C92F02C08FEFCFEF05DFBA
:101E20008C2F03DF92E0490E511C611C711CDA9467
:101E3000DA94D110E6CFD301C201B695A795979554
:101E40008795EC0150CF853409F04DCFCD2C8E0114
:101E5000C8015ED0EADE0F5F1F4FCA94C110F8CFF1
:101E600021968FEF8D0DC80FD11D3DCF8536A9F47A
:101E7000E7E7FE1233C0E0E0F0E090925700E8950B
:101E800007B600FCFDCFE05CFF4FE1158CE1F807E1
:101E9000A1F7E0925700E89521C0853439F40FB6D8
:101EA000F894A895B1BC0FBEA1BC18C08035B1F0A4
:101EB0008C34A1F0803711F483E528C0843721F4F5
:101EC00087E7B3DE80E022C098E8980F923010F4E4
:101ED000A8DE04C0843521F4A4DEF82E8DE016C0FF
:101EE000833511F4B4DEFFCE863521F480E39DDE28
:101EF00088E30CC0833731F487E097DE83E995DE11
:101F00008EE104C08B3109F4EECE8FE38EDEEBCE92
:101F1000E199FECF9FBB8EBBE09A99278DB30895C0
:101F2000262FE199FECF9FBB8EBB2DBB0FB6F89439
:0E1F3000E29AE19A0FBE01960895F894FFCF51
:0400000300001C00DD
:00000001FF