реклама на сайте
подробности

 
 
> CodeVision массив по конкретному адресу, Как расположить проинициализированный массив в памяти по нужному адрес
InvisibleFed
сообщение Jun 30 2008, 03:51
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 18-11-06
Из: Хабаровск
Пользователь №: 22 469



Здравствуйте. Есть массив (табличный метод расчета кцк). Не могу в CodeVision разместить его по нужному адресу. Например:

Код
char array[5] = {0x12, 0x34, 0x45, 0x56, 0x67};

Хочу чтобы лежал он с адреса 0x100:

Код
char array[5] = {0x12, 0x34, 0x45, 0x56, 0x67} @0x100; // не помогает

Куда только эти @0x100 я не ставил. Хотя вот так пишут в хелпе:

Код
char a@0x100;

... и все пашет. А с инициализацией нивкакую...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Александр Куличо...
сообщение Jul 1 2008, 12:03
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 6-03-06
Из: Украина, г. Винница
Пользователь №: 15 017



Перед вызовом Y <= указатель на данные
XL (или XH:XL) <= кол-во байт (но не менее одного)
Код


lblCRC16_Table:
// размещаем на границе 256 байт
.ORG ((lblCRC16_Table>>2)+1)<<2
CRC16_Table: // array[0..255] OF WORD =
.dw $0000,$C0C1,$C181,$0140,$C301,$03C0,$0280,$C241,$C601,$06C0
.dw $0780,$C741,$0500,$C5C1,$C481,$0440,$CC01,$0CC0,$0D80,$CD41
.dw $0F00,$CFC1,$CE81,$0E40,$0A00,$CAC1,$CB81,$0B40,$C901,$09C0
.dw $0880,$C841,$D801,$18C0,$1980,$D941,$1B00,$DBC1,$DA81,$1A40
.dw $1E00,$DEC1,$DF81,$1F40,$DD01,$1DC0,$1C80,$DC41,$1400,$D4C1
.dw $D581,$1540,$D701,$17C0,$1680,$D641,$D201,$12C0,$1380,$D341
.dw $1100,$D1C1,$D081,$1040,$F001,$30C0,$3180,$F141,$3300,$F3C1
.dw $F281,$3240,$3600,$F6C1,$F781,$3740,$F501,$35C0,$3480,$F441
.dw $3C00,$FCC1,$FD81,$3D40,$FF01,$3FC0,$3E80,$FE41,$FA01,$3AC0
.dw $3B80,$FB41,$3900,$F9C1,$F881,$3840,$2800,$E8C1,$E981,$2940
.dw $EB01,$2BC0,$2A80,$EA41,$EE01,$2EC0,$2F80,$EF41,$2D00,$EDC1
.dw $EC81,$2C40,$E401,$24C0,$2580,$E541,$2700,$E7C1,$E681,$2640
.dw $2200,$E2C1,$E381,$2340,$E101,$21C0,$2080,$E041,$A001,$60C0
.dw $6180,$A141,$6300,$A3C1,$A281,$6240,$6600,$A6C1,$A781,$6740
.dw $A501,$65C0,$6480,$A441,$6C00,$ACC1,$AD81,$6D40,$AF01,$6FC0
.dw $6E80,$AE41,$AA01,$6AC0,$6B80,$AB41,$6900,$A9C1,$A881,$6840
.dw $7800,$B8C1,$B981,$7940,$BB01,$7BC0,$7A80,$BA41,$BE01,$7EC0
.dw $7F80,$BF41,$7D00,$BDC1,$BC81,$7C40,$B401,$74C0,$7580,$B541
.dw $7700,$B7C1,$B681,$7640,$7200,$B2C1,$B381,$7340,$B101,$71C0
.dw $7080,$B041,$5000,$90C1,$9181,$5140,$9301,$53C0,$5280,$9241
.dw $9601,$56C0,$5780,$9741,$5500,$95C1,$9481,$5440,$9C01,$5CC0
.dw $5D80,$9D41,$5F00,$9FC1,$9E81,$5E40,$5A00,$9AC1,$9B81,$5B40
.dw $9901,$59C0,$5880,$9841,$8801,$48C0,$4980,$8941,$4B00,$8BC1
.dw $8A81,$4A40,$4E00,$8EC1,$8F81,$4F40,$8D01,$4DC0,$4C80,$8C41
.dw $4400,$84C1,$8581,$4540,$8701,$47C0,$4680,$8641,$8201,$42C0
.dw $4380,$8341,$4100,$81C1,$8081,$4040



; CRCH:CRCL:=CRCH(8bit) xor CRC16_Table[Data xor CRCL](16bit)
; или
; CRCL:=CRCH(old) xor LOW( CRC16_Table[Data xor CRCL] )
; CRCH:=             HIGH( Table[Data xor CRCL] )


CalcCRC16:
   crc16_loop:
    ld    ZL,Y+
    eor    ZL,CRCL
    ldi    ZH,high(CRC16_Table)
    lsl    ZL
    rol    ZH
    lpm    CRCL,Z+        // LOW( Table[Data xor CRCL] )
    eor    CRCL,CRCH        // = new CRCL
    lpm    CRCH,Z        // = new CRCH = HIGH( Table[Data xor CRCL] )

    dec    XL  (или sbiw XH:XL,1)
    brne    crc16_loop
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- InvisibleFed   CodeVision массив по конкретному адресу   Jun 30 2008, 03:51
- - haker_fox   Цитата(InvisibleFed @ Jun 30 2008, 12:51)...   Jun 30 2008, 04:54
|- - InvisibleFed   Цитата(haker_fox @ Jun 30 2008, 15:54) А ...   Jun 30 2008, 06:31
|- - defunct   Цитата(InvisibleFed @ Jun 30 2008, 09:31)...   Jun 30 2008, 22:17
- - vet   InvisibleFed, предваряйте определение переменной д...   Jun 30 2008, 10:13
- - VDG   Цитата(InvisibleFed @ Jun 30 2008, 07:51)...   Jun 30 2008, 11:43
|- - vet   Цитата(VDG @ Jun 30 2008, 15:43) и к чему...   Jul 1 2008, 06:02
|- - VDG   Цитата(vet @ Jul 1 2008, 10:02) Сам приме...   Jul 2 2008, 21:05
|- - vet   Цитата(VDG @ Jul 3 2008, 01:05) Вот я про...   Jul 3 2008, 05:43
|- - VDG   Цитата(vet @ Jul 3 2008, 09:43) почему не...   Jul 3 2008, 09:48
|- - vet   Цитата(VDG @ Jul 3 2008, 13:48) не надо с...   Jul 3 2008, 12:23
|- - VDG   Цитата(vet @ Jul 3 2008, 16:23) Не уловил...   Jul 3 2008, 12:30
- - sgs   Цитата(InvisibleFed @ Jun 30 2008, 08:51)...   Jun 30 2008, 16:32
- - Т.Достоевский   Непонятно, зачем конкретный адрес? Что асм, что ко...   Jun 30 2008, 23:35
|- - defunct   Цитата(Т.Достоевский @ Jul 1 2008, 02:35)...   Jun 30 2008, 23:45
- - InvisibleFed   Здравствуйте. Всем спасибо за ответы. Отвечу и вне...   Jul 1 2008, 06:57
- - Александр Куличок   Цитата3. Некоторые противоречат сами себе - говоря...   Jul 1 2008, 08:24
- - InvisibleFed   ЦитатаПовнимательней посты читать надо. Вам предло...   Jul 1 2008, 08:53
|- - Сергей Борщ   Цитата(InvisibleFed @ Jul 1 2008, 11:53) ...   Jul 1 2008, 09:14
- - Александр Куличок   ЦитатаВо-первых, про тормознутость lpm писал я сам...   Jul 1 2008, 09:34
- - InvisibleFed   ЦитатаУ меня код для CRC16 занимает 16/17 тактов н...   Jul 1 2008, 10:24
- - defunct   Табличный способ расчета CRC внезависимости от раз...   Jul 1 2008, 10:27
|- - defunct   Цитата(Александр Куличок @ Jul 1 2008, 15...   Jul 1 2008, 21:09
- - Александр Куличок   ЦитатаВы шутите наверное?! X использовать под ...   Jul 1 2008, 21:54
|- - defunct   Цитата(Александр Куличок @ Jul 2 2008, 00...   Jul 2 2008, 15:51
- - sgs   Цитата(InvisibleFed @ Jun 30 2008, 08:51)...   Jul 18 2008, 08:33
- - SasaVitebsk   А если перейти на IAR (или GCC), то решается две з...   Jul 18 2008, 17:55
- - InvisibleFed   SasaVitebsk, спасибо, полностью согласен. Но так у...   Jul 22 2008, 06:34
- - Qwertty   Цитата(InvisibleFed @ Jul 22 2008, 10:34)...   Jul 22 2008, 07:00
- - sgs   Цитата(InvisibleFed @ Jul 22 2008, 11:34)...   Jul 22 2008, 10:30


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 22:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01395 секунд с 7
ELECTRONIX ©2004-2016