Перейти к содержанию
    

Jhohn

Участник
  • Постов

    65
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о Jhohn

  • Звание
    Участник
    Участник
  1. Разобрался. Надо внимательней смотреть примеры.
  2. На карте DESFire Mifare у меня проблемы с аутинтификацией (функцией phalMfdf_AuthenticateISO() ). Кто работал с этой картой подскажите, пожалуйста, что не так. uint8_t bLength; /**< Length */ uint8_t aSak[1]; /**< Select Acknowledge; uint8_t. */ uint8_t aUid[10]; /**< complete Uid; uint8_t[4/7/10]. */ uint8_t bMoreCardsAvaliable; /**< more card available */ #define NUMBER_OF_KEYVERSIONPAIRS 1 //! for Classic /* Initialize the keystore component */ status = phKeyStore_Sw_Init( &pKeyStore, sizeof(phKeyStore_Sw_DataParams_t), &sKeyEntries[0], 0xFF, &sKeyVersionPairs[0], NUMBER_OF_KEYVERSIONPAIRS, &sKUCEntries[0], 0xFF); CHECK_SUCCESS(status); /* Default PICC key */ static uint8_t bDefaultPICCKey[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; #define PICCKEY_ADDRESS 0x15 /* PICC Key entry number in key store. */ #define SL_3_AES_KEY_VERSION 0x00 /**< SL2 key version in keystore */ phalMfdf_Sw_DataParams_t alMfdf; phCryptoSym_Sw_DataParams_t CryptoEnc; phCryptoSym_Sw_DataParams_t CryptoMac; phCryptoSym_Sw_DataParams_t CryptoDiv; phCryptoSym_Sw_DataParams_t CryptoRngCrypto; phCryptoRng_Sw_DataParams_t CryptoRng; /* initialise Crypto components */ status = phCryptoSym_Sw_Init(&CryptoEnc, sizeof(CryptoEnc), &pKeyStore); CHECK_SUCCESS(status); status = phCryptoSym_Sw_Init(&CryptoMac, sizeof(CryptoMac), &pKeyStore); CHECK_SUCCESS(status); status = phCryptoSym_Sw_Init(&CryptoDiv, sizeof(CryptoDiv), &pKeyStore); CHECK_SUCCESS(status); status = phCryptoSym_Sw_Init(&CryptoRngCrypto, sizeof(CryptoRngCrypto), &pKeyStore); CHECK_SUCCESS(status); /* initialise Crypto Rng component */ status = phCryptoRng_Sw_Init(&CryptoRng, sizeof(CryptoRng), &CryptoRngCrypto); CHECK_SUCCESS(status); /*Intialize the crypto components */ status = phCryptoSym_Sw_Init(&CryptoEnc, /**< [in] Pointer to this layer's parameter structure. */ sizeof(phCryptoSym_Sw_DataParams_t), /**< [in] Specifies the size of the data parameter structure */ &pKeyStore); /**< [in] Pointer to a key store structure (can be null).*/ CHECK_SUCCESS(status); status = phCryptoSym_Sw_Init(&CryptoRngCrypto, /**< [in] Pointer to this layer's parameter structure. */ sizeof(phCryptoSym_Sw_DataParams_t), /**< [in] Specifies the size of the data parameter structure */ &pKeyStore); /**< [in] Pointer to a key store structure (can be null).*/ CHECK_SUCCESS(status); status = phCryptoRng_Sw_Init(&CryptoRng, /**< [in] Pointer to this layer's parameter structure. */ sizeof(phCryptoRng_Sw_DataParams_t), /**< [in] Specifies the size of the data parameter structure */ &CryptoRngCrypto); /**< [in] Pointer to the parameter structure of the symmetric crypto layer. */ CHECK_SUCCESS(status); status = phhalHw_FieldReset(&sHal_Nfc_Ic.sHal); /**< [in] Pointer to the parameter structure of the underlying HAL layer. */ CHECK_SUCCESS(status); /* Activate Layer 3 card. In loop till a card is detected. */ status = phpalI14443p3a_ActivateCard(&spalI14443p3a, /**< [in] PAL-ISO14443P3A parameter structure */ NULL, /**< [in] Known Uid */ 0x00, /**< [in] Known Uid length */ aUid, /**< [Out] Complete Uid */ &bLength, /**< [Out] Lenght Uid **/ &aSak, /**< [out] SAK */ &bMoreCardsAvaliable); /**< [Out] Whether there are more cards in the field or not */ CHECK_SUCCESS(status); /* Send RATS */ status = phpalI14443p4a_Rats(&spalI14443p4, /**< [in] PAL-ISO14443P4A parameter structure */ 0x08, /**< [in] Frame size integer */ 0x01, /**< [in] Card Identifier */ pAts); /**< [Out] Answer to select */ CHECK_SUCCESS(status); /* Send PPS */ status = phpalI14443p4a_Pps(&spalI14443p4, /**< [in] PAL-ISO14443P4A parameter structure */ 0x00, /**< [in] Divisor Receive (PCD to PICC) Integer */ 0x00); /**< [in] Divisor Send (PICC to PCD) Integer */ CHECK_SUCCESS(status); // status = StoreKeysInKeyStore_desfire(&pKeyStore); /* Set the default PICC Master key in the key store */ status = phKeyStore_FormatKeyEntry(&pKeyStore, PICCKEY_ADDRESS, PH_CRYPTOSYM_KEY_TYPE_2K3DES); CHECK_SUCCESS(status); status = phKeyStore_SetKeyAtPos(&pKeyStore, PICCKEY_ADDRESS, 0x00, PH_CRYPTOSYM_KEY_TYPE_2K3DES, bDefaultPICCKey, 0x00); CHECK_SUCCESS(status); // /* Authenticating the Desfire Ev1 with PICC Master key stored above */ // status = phalMfdf_AuthenticateAES(&alMfdf, /* [in] Pointer to parameters data structure */ // PHAL_MFDF_NO_DIVERSIFICATION, /* [in] Diversification option */ // PICCKEY_ADDRESS, /* [in]KEY number in key store */ // 0x00, /* [in] Key version in key store */ // 0x00, /* [in] Key number on Card */ // NULL, /* [in] Diversification input */ // 0); /* [in] Diversification input length */ // CHECK_SUCCESS(status); //status = phhalHw_FieldReset(&sHal_Nfc_Ic.sHal); /**< [in] Pointer to the parameter structure of the underlying HAL layer. */ //CHECK_SUCCESS(status); status = phalMfdf_AuthenticateISO(&alMfdf, /* [in] Pointer to parameters data structure */ PHAL_MFDF_NO_DIVERSIFICATION, /* [in] Diversification option */ PICCKEY_ADDRESS, /* [in]KEY number in key store */ 0x00, /* [in] Key version in key store */ 0x00, /* [in] Key number on Card */ NULL, /* [in] Diversification input */ 0); /* [in] Diversification input length */ CHECK_SUCCESS(status); /* Pre personalization */ //status = PrePersonalization_AFCApp(&alMfdf, bCardUid); CHECK_SUCCESS(status); /* Authenticate with the PICC Master key */ status = phalMfdf_AuthenticateISO(&alMfdf, /* [in] Pointer to parameters data structure */ PHAL_MFDF_NO_DIVERSIFICATION, /* [in] Diversification option */ PICCKEY_ADDRESS, /* [in]KEY number in key store */ 0x00, /* [in] Key version in key store */ 0x00, /* [in] Key number on Card */ NULL, /* [in] Diversification input */ 0); /* [in] Diversification input length */ CHECK_SUCCESS(status);
  3. Спасибо, редактор. Поверхностным взглядом подобного файла не нашел, может где-то в настройка проекта, но быстренько взглянув тоже или не нашел, или нет. Руководство пока отложило обновление ПО внутри устройства назвав ее "дополнительной примочкой" - жесть, конечно. Устройство состоит из 100 звеньев и более, опускается в скважину, чтоб обновить ПО придется вынуть, все устройство разобрать, вместо того чтобы сделать все нормально. Это я так поплакался, кто еще может меня понять как не коллеги ))
  4. Это да, я это вижу. Однако похоже, что при одной и тоже оптимизации приращение к абсолютному адресу стабильно 0x27 Я проанализировал, на сколько мог map-файл. В частности я увидел в нем: Program entry at : CODE 0000E027 Relocatable, from module : CSTARTUP Понял о чем вы говорили: Cstartup Code that sets up the system before the application starts executing. Это относительно теории (в теории всегда важно разбираться), но на практике вижу, что я буду, как и прежде, смотреть этот "CSTARTUP" в map-файле, и устанавливать на него LJMP. Или есть другие пути? project_aduc.html
  5. из-за аксиомы (04 27 вместо 0400), которую я не сумел постичь, сделал так: в линкере указал расположение 0400 кода, при прыжке на этот код из другой программы указал 0427 (ljmp)
  6. Похоже, что точка входа, далее вычитанный hex 000001 02 04 27 FF FF FF FF FF FF FF FF FF FF FF FF FF 04 27 вместо 0400 Палыч, спасибо за наталкивание
  7. Было предположение, поэтому сделал вычитку памяти flash, когда вычитал криминала не нашел, две программы находились там где указывал в линкере. Да, два разных проекта. Физически один проект для теста, в одной программе задаю адрес старта, и делаю jmp на другой адрес, создаю HEX. Затем в этом проете меняю адрес расположения программы, меняю адрес jmp на первую программу, создаю HEX. В друх программах разные мигания светодиодом. В результате получаю 2 HEX. Первая программа :03000000020127D3 :1001000000000080FB120133B900030201217810C6 :100110009001397A0CBA00028007E493A3F608DA5A :10012000F91201AD12010075D00075819F53A7FE31 :10013000020105790153A7FE22E803000000000038 :100140000001000000C3E7960809E7960809E79652 :100150000809E79622E627F60809E637F60809E6D1 :1001600037F60809E637F622E7F60809E7F6080940 :10017000E7F60809E7F62253A7FE758400D083D07E :1001800082CEC0E0EFC0E0C0207808E608C0E0DE24 :10019000FAE473C0D074072FD0D0F8D0E0F618DF9F :1001A000FAD020D0E0FFD0E0FE53A7FE2212024496 :1001B0007910780C120168850C08850D09850E0AE6 :1001C000850F0B7E007F00C3EE940AEF9400A2D24D :1001D00065D033501A63A080E5A0AA08AB09AC0A29 :1001E000AD0B1201F4EE2401FEEF3400FF80D802C3 :1001F000040080BC7408120177E5812404F581E5D0 :100200008124FDF8EAF608EBF608ECF608EDF6793D :1002100014780C120168850C08850D09850E0A8575 :100220000F0BE58124FDF879081201455009791872 :10023000780812015580EB15811581158115817F94 :1002400008020193D29ED29C759E83759D1253A77E :02025000FE228C :00012701D7 :00000001FF Вторая программа :03000000020427D0 :1004000000000080FB120433B900030204217810BD :100410009004397A0CBA00028007E493A3F608DA54 :10042000F91204AD12040075D00075819F53A7FE28 :10043000020405790153A7FE2210270000000000E6 :100440000001000000C3E7960809E7960809E7964F :100450000809E79622E627F60809E637F60809E6CE :1004600037F60809E637F622E7F60809E7F608093D :10047000E7F60809E7F62253A7FE758400D083D07B :1004800082CEC0E0EFC0E0C0207808E608C0E0DE21 :10049000FAE473C0D074072FD0D0F8D0E0F618DF9C :1004A000FAD020D0E0FFD0E0FE53A7FE2212054490 :1004B0007910780C120468850C08850D09850E0AE0 :1004C000850F0B7E007F00C3EE940AEF9400A2D24A :1004D00065D033501A63A080E5A0AA08AB09AC0A26 :1004E000AD0B1204F4EE2401FEEF3400FF80D802BD :1004F000010080BC7408120477E5812404F581E5CD :100500008124FDF8EAF608EBF608ECF608EDF6793A :1005100014780C120468850C08850D09850E0A856F :100520000F0BE58124FDF87908120445500979186C :10053000780812045580EB15811581158115817F8E :1005400008020493D29ED29C759E83759D1253A778 :02055000FE2289 :00042701D4 :00000001FF Объединенный файл вручную :03000000020127D3 :1001000000000080FB120133B900030201217810C6 :100110009001397A0CBA00028007E493A3F608DA5A :10012000F91201AD12010075D00075819F53A7FE31 :10013000020105790153A7FE22E803000000000038 :100140000001000000C3E7960809E7960809E79652 :100150000809E79622E627F60809E637F60809E6D1 :1001600037F60809E637F622E7F60809E7F6080940 :10017000E7F60809E7F62253A7FE758400D083D07E :1001800082CEC0E0EFC0E0C0207808E608C0E0DE24 :10019000FAE473C0D074072FD0D0F8D0E0F618DF9F :1001A000FAD020D0E0FFD0E0FE53A7FE2212024496 :1001B0007910780C120168850C08850D09850E0AE6 :1001C000850F0B7E007F00C3EE940AEF9400A2D24D :1001D00065D033501A63A080E5A0AA08AB09AC0A29 :1001E000AD0B1201F4EE2401FEEF3400FF80D802C3 :1001F000040080BC7408120177E5812404F581E5D0 :100200008124FDF8EAF608EBF608ECF608EDF6793D :1002100014780C120168850C08850D09850E0A8575 :100220000F0BE58124FDF879081201455009791872 :10023000780812015580EB15811581158115817F94 :1002400008020193D29ED29C759E83759D1253A77E :02025000FE228C :03000000020427D0 :1004000000000080FB120433B900030204217810BD :100410009004397A0CBA00028007E493A3F608DA54 :10042000F91204AD12040075D00075819F53A7FE28 :10043000020405790153A7FE2210270000000000E6 :100440000001000000C3E7960809E7960809E7964F :100450000809E79622E627F60809E637F60809E6CE :1004600037F60809E637F622E7F60809E7F608093D :10047000E7F60809E7F62253A7FE758400D083D07B :1004800082CEC0E0EFC0E0C0207808E608C0E0DE21 :10049000FAE473C0D074072FD0D0F8D0E0F618DF9C :1004A000FAD020D0E0FFD0E0FE53A7FE2212054490 :1004B0007910780C120468850C08850D09850E0AE0 :1004C000850F0B7E007F00C3EE940AEF9400A2D24A :1004D00065D033501A63A080E5A0AA08AB09AC0A26 :1004E000AD0B1204F4EE2401FEEF3400FF80D802BD :1004F000010080BC7408120477E5812404F581E5CD :100500008124FDF8EAF608EBF608ECF608EDF6793A :1005100014780C120468850C08850D09850E0A856F :100520000F0BE58124FDF87908120445500979186C :10053000780812045580EB15811581158115817F8E :1005400008020493D29ED29C759E83759D1253A778 :02055000FE2289 :00042701D4 :00000001FF Вычитанная память из контроллера (просто чтение изнутри и передача по UART) U8 __code *p = (U8 __code *)0x000000; 000001 02 04 27 FF FF FF FF FF FF FF FF FF FF FF FF FF 000002 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000003 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000004 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000005 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000006 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000007 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000008 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000009 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000010 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000011 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000012 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000013 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000014 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000015 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000016 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000017 00 00 00 80 FB 12 01 33 B9 00 03 02 01 21 78 10 000018 90 01 39 7A 0C BA 00 02 80 07 E4 93 A3 F6 08 DA 000019 F9 12 01 AD 12 01 00 75 D0 00 75 81 9F 53 A7 FE 000020 02 01 05 79 01 53 A7 FE 22 E8 03 00 00 00 00 00 000021 00 01 00 00 00 C3 E7 96 08 09 E7 96 08 09 E7 96 000022 08 09 E7 96 22 E6 27 F6 08 09 E6 37 F6 08 09 E6 000023 37 F6 08 09 E6 37 F6 22 E7 F6 08 09 E7 F6 08 09 000024 E7 F6 08 09 E7 F6 22 53 A7 FE 75 84 00 D0 83 D0 000025 82 CE C0 E0 EF C0 E0 C0 20 78 08 E6 08 C0 E0 DE 000026 FA E4 73 C0 D0 74 07 2F D0 D0 F8 D0 E0 F6 18 DF 000027 FA D0 20 D0 E0 FF D0 E0 FE 53 A7 FE 22 12 02 44 000028 79 10 78 0C 12 01 68 85 0C 08 85 0D 09 85 0E 0A 000029 85 0F 0B 7E 00 7F 00 C3 EE 94 0A EF 94 00 A2 D2 000030 65 D0 33 50 1A 63 A0 80 E5 A0 AA 08 AB 09 AC 0A 000031 AD 0B 12 01 F4 EE 24 01 FE EF 34 00 FF 80 D8 02 000032 04 00 80 BC 74 08 12 01 77 E5 81 24 04 F5 81 E5 000033 81 24 FD F8 EA F6 08 EB F6 08 EC F6 08 ED F6 79 000034 14 78 0C 12 01 68 85 0C 08 85 0D 09 85 0E 0A 85 000035 0F 0B E5 81 24 FD F8 79 08 12 01 45 50 09 79 18 000036 78 08 12 01 55 80 EB 15 81 15 81 15 81 15 81 7F 000037 08 02 01 93 D2 9E D2 9C 75 9E 83 75 9D 12 53 A7 000038 FE 22 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000039 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000040 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000041 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000042 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000043 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000044 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000045 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000046 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000047 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000048 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000049 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000050 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000051 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000052 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000053 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000054 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000055 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000056 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000057 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000058 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000059 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000060 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000061 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000062 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000063 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000064 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000065 00 00 00 80 FB 12 04 33 B9 00 03 02 04 21 78 10 000066 90 04 39 7A 10 BA 00 02 80 07 E4 93 A3 F6 08 DA 000067 F9 12 04 B1 12 04 00 75 D0 00 75 81 9F 53 A7 FE 000068 02 04 05 79 01 53 A7 FE 22 10 27 00 00 40 9C 00 000069 00 00 00 00 00 01 00 00 00 C3 E7 96 08 09 E7 96 000070 08 09 E7 96 08 09 E7 96 22 E6 27 F6 08 09 E6 37 000071 F6 08 09 E6 37 F6 08 09 E6 37 F6 22 E7 F6 08 09 000072 E7 F6 08 09 E7 F6 08 09 E7 F6 22 53 A7 FE 75 84 000073 00 D0 83 D0 82 CE C0 E0 EF C0 E0 C0 20 78 08 E6 000074 08 C0 E0 DE FA E4 73 C0 D0 74 07 2F D0 D0 F8 D0 000075 E0 F6 18 DF FA D0 20 D0 E0 FF D0 E0 FE 53 A7 FE 000076 22 12 05 96 79 10 78 0C 12 04 6C 85 0C 08 85 0D 000077 09 85 0E 0A 85 0F 0B 7E 00 7F 00 C3 EE 94 0A EF 000078 94 00 A2 D2 65 D0 33 50 1A 63 A0 80 E5 A0 AA 08 000079 AB 09 AC 0A AD 0B 12 05 46 EE 24 01 FE EF 34 00 000080 FF 80 D8 05 A7 75 82 00 75 83 00 7E 00 7F 00 C3 000081 EE 94 D0 EF 94 07 50 26 43 A7 01 C0 82 C0 83 05 000082 A7 D0 83 D0 82 75 84 00 E4 93 F5 0C 05 A7 A3 A9 000083 0C 12 05 A4 EE 24 01 FE EF 34 00 FF 80 D1 79 14 000084 78 0C 12 04 6C AA 0C AB 0D AC 0E AD 0F 12 05 46 000085 02 01 00 02 04 B4 74 08 12 04 7B E5 81 24 04 F5 000086 81 E5 81 24 FD F8 EA F6 08 EB F6 08 EC F6 08 ED 000087 F6 79 18 78 0C 12 04 6C 85 0C 08 85 0D 09 85 0E 000088 0A 85 0F 0B E5 81 24 FD F8 79 08 12 04 49 50 09 000089 79 1C 78 08 12 04 59 80 EB 15 81 15 81 15 81 15 000090 81 7F 08 02 04 97 D2 9E D2 9C 75 9E 83 75 9D 12 000091 53 A7 FE 22 C2 99 89 99 A2 99 50 FC C2 99 53 A7 000092 FE 22 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000093 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000094 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000095 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000096 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000097 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000098 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000099 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000100 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000101 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000102 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000103 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000104 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000105 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000106 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000107 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000108 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000109 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000110 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000111 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000112 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000113 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000114 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000115 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000116 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000117 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000118 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000119 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000120 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000121 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000122 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000123 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000124 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 000125 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF Похоже, что точка входа, далее вычитанный hex 000001 02 04 27 FF FF FF FF FF FF FF FF FF FF FF FF FF 04 27 вместо 0400 И всеже чтобы разобраться теоретически, что плохого делается при переходе на 0x0400 адрес?
  8. Если код находится по адресу 0x0400 и сделать прыжок в на этот адрес 0x0400, то программа куда-то улетает. Но если прыжок сделать на 0x0000, то нормальное выполнение. Что упускаю? Выдержка из файла "Debug\List\*.list", может знающий сразу что-то увидит, чего я не вижу... Результат 1 и 2 метода один и тот же: программа улетает и не возвращается. 60 ((void (*)())0x0400)(); // переход к штатной программе \ ??main_2: \ 000042 ; Setup parameters for indirect call \ 000042 120100 LCALL 0x100 61 82 asm ("LJMP 0x0400"); \ 000045 020400 LJMP 0x0400 \ 000048 80B9 SJMP ??main_0 \ 00004A REQUIRE _A_P2
  9. Не обращайте внимание на это, это я пробовал варианты в 2-х программах. Я пробовал два адреса в разных программах.
  10. Необходимо на контроллере ADuC845 в среде IAR, с которой работал раньше, перейти по заданному адресу, где находится выполняемая функция. Никак не удается перейти с одной программы в другую. Располагаю для теста две программы незивисымые, с разной частотой мигания светодиода. По заданным для перехода адресам находится то что нужно, проверял вычитыванием памяти flash. Пробовал переход и так asm ("LJMP 0x0400"); и так ((void (*)())0x0000)(); Почитал хорошую темку ПО для перепрошивки 8051, Дайте мудрый совет, но там не про IAR. Может пересесть с любимого? Как перейти с программы начальной адрес которой 0x100 на другую прогу с начальным адресом 0x400?
  11. Руслан, у меня таблица находится в памяти программ (Rom), я ее расположил по конкретному адресу, и проверил каждый ли байт этой таблицы находится последовательно... Мне потом с этой таблицей нужно работать с помощью одного указателя. В таблице типы данных разные (символы, одно-байтовые и много-байтовые целые). При изменении расположения адреса в таблице (например на 0х1100) таблицу почему-то не удается прочитать. В чем может быть "гвоздь"?
  12. Как прочесть элемент 24? по адресу 0x1000? Я по ссылке получил значение. Сложность заключалась как создать ссылку на таблицу констант в rom, далее как получить значение и остальное это понятно. Или вы о том, что я должен был еще привести пример как получить значение?
  13. Извиняюсь, с pic только начал работать. Расположил таблицу в памяти программ. Оболочка MPLAB, compiler C18. #pragma romdata const_table_1 = 0x1000 rom const U8 Line_001 = 24; ... ... ... #pragma romdata Как прочесть элемент 24? по адресу 0x1000?
  14. Спасибо всем, и в особенности zhevak 3.2. Программист-разработчик ошибся при инициализации переменной или написал важный код, который вычисляет параметр не правильно. Это я имел ввиду под проверкой данных в МК. Ответ получил, спасибо.
×
×
  • Создать...