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

JohnKorsh

Свой
  • Постов

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

  • Посещение

Весь контент JohnKorsh


  1. CCS 6.1.1. не запускается.

    Добрый день! Не подскажет ли кто - после установки CCS 6.1.1 при попытке запуска появляется предупреждение Failed to create JAVA Virtual Machine и программа закрывается. Как с этим бороться?
  2. Добрый день! Не поможет ли кто в решении проблемы? Зпрограммировали кучу MSP430F1232 с опцией "пережигания" доступа по JTAG. Конечное, понадобилось внести исправления в программу. По-моему возможно программирование MSP430 через его внутренний USART или это "всё", надо перепаивать всю партию?
  3. Lock of EFM32G880F128

    Добрый день! Я использую микроконтроллер EFM32G880F128. Не нашёл в DataSheet как можно 'закрыть' FLASH от считывания. В AVR и PIC просто ставится бит 'закрытия'. В данном случае я такого бита не нашёл. Видимо, плохо искал. Не поможет ли кто?
  4. Спасибо. Мы явно недодумали. Надо в интернет посмотреть. И с сантехниками пообщаться.
  5. Ну, я думал, что понятно, что трубочка внутри, конструкции, и видна только после разборки изделия. Дырочку под иголку - маленькую, дальше - как фантазия работает - совместить с какой-нибудь дырочкой конструкции (сетка под динамик и т.п.). Конечное, такая защита на один раз, но больше, обычно, и не надо - видно, что пользователь любопытствовал. При сборке - набрали последовательность из цветов шариков, вставили иголку, закрутили изделие, вынули иголку. Шарики "упёрлись" в внутренний элемент конструкции (выступ крышки, например). При разборке этот элемент конструкции "открывает" путь шарикам. Вы, как разработчик, вскрываете предварительно вставив иголку в известное Вам отверстие, она блокирует шарики от выталкивания и рассыпания. Пользователь вскрывает без иголки и шарики рассыпаются. Конечно, не панацея от всего. НО плюс в том, что не требует питания. А насчёт пломб - неужели не делали? - заливаете известным компаундом пломбу, он застывает через час, и потом опечатываете, сколько раз необходимо.
  6. Спасибо. "Зпуск от имени Администратра" помог.
  7. Попробую описать рабочую кнструкцию. Пластиковая прозрачная трубочка, открытаая с одного конца. С другого - пружинка. В трубочке - цветные шарики. Ну, штук десять. Вы, при окончательной сборке записываете последовательность цветов. Конструкция аппарата такова, что, в открытом состоянии пружинка свободно выталкивает шарики. При сборке и разборке Вами в отверстие конструкции вставляете иглу, перекрывающую шарики. Думаю, идея ясна.
  8. Вопрос по Atmel Studio 6.1.

    Добрый день! Не поможет ли кто разобраться с Atmel Studio 6.1 SP2? При работе под ОС Windows XP всё нормально. При работе под ОС Windows 8 при компиляции любого проекта выдаётся ошибка компиляции. Вот всё, что выдал компилятор: ------ Build started: Project: Test, Configuration: Debug AVR ------ Build started. Project "Test.cppproj" (default targets): Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!=''). Target "CoreBuild" in file "C:\Program Files (x86)\Atmel\Atmel Studio 6.1\Vs\Compiler.targets" from project "F:\My Documents\AWR\w\Test\Test\Test\Test.cppproj" (target "Build" depends on it): Using "RunCompilerTask" task from assembly "C:\Program Files (x86)\Atmel\Atmel Studio 6.1\Extensions\Application\AvrGCC.dll". Task "RunCompilerTask" C:\Program Files (x86)\Atmel\Atmel Studio 6.1\shellUtils\make.exe all process_begin: CreateProcess(C:\Users\Korsh\AppData\Local\Temp\make704-1.bat, C:\Users\Korsh\AppData\Local\Temp\make704-1.bat, ...) failed. make (e=5): +Єърчрэю т фюёЄєях. make: *** [Test.o] Error 5 Done executing task "RunCompilerTask" -- FAILED. Done building target "CoreBuild" in project "Test.cppproj" -- FAILED. Done building project "Test.cppproj" -- FAILED. Build FAILED. ========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ========== Пробовал запускать в режиме совместимости с Windows XP. Не помогает. При этом все тестовые проекты компилируются на той же версии Atmel Studio 6.1 SP2, но установленной под Windows XP.
  9. Добрый день! Пишу для EFM32G880F128 в IDE Keil. Понадобилось разместить функцию для исполнения из RAM. Как вычитал, для этого в Keil используются scatter файлы. Вот какой файл выдал Keil в моём проекте: LR_IROM1 0x00000000 0x00020000 { ; load region size_region ER_IROM1 0x00000000 0x00020000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x20000000 0x00004000 { ; RW data .ANY (+RW +ZI) } } Не поможет ли кто грамотно вставить RAM секцию в этот файл? Вот мой, неработающий, вариант: LR_IROM1 0x00000000 0x00020000 { ; load region size_region ER_IROM1 0x00000000 0x00020000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x20000000 0x00004000 { ; RW data .ANY (+RW +ZI) } MCU_IRAM +0 { : My section, called MCU_RAM_CODE .ANY (+RW +ZI) .ANY (MCU_RAM_CODE) } } В исходном коде сделал так: #define __SI32_RRAM __attribute__ ((section('MCU_RAM_CODE'))) ... __SI32_RRAM void WriteToFlash (void) Получил от компилятора: Error 600 Too many characters in character constant. Со scatter файлами дело никогда не имел, поэтому, видимо, написал ерунду. Не поможет ли кто грамотно написать?
  10. Ещё раз спасибо. Но пишу под Keil. Там, для размещения функции в RAM надо секцию организовывать через scstter файл. Поэтому фирменный код от EnergyMicro не работает, так как Keil не воспринимает атрибуты для Simplicity.
  11. Вопрос в дополнение к предыдущему. Стал тестировать запись - микроконтроллер перезагружается. Вот мой код: WDOG_Enable (false); // Disable of the watchdog. // For to be on the safe side. MSC->LOCK = MSC_UNLOCK_CODE; // Unlock of the FLASH writting. MSC-> WRITECTRL |= MSC_WRITECTRL_WREN; // Set enable of the FLASH writting. MSC -> ADDRB = USERDATA_BASE; // Set of the FLASH User memory address. MSC -> WRITECMD = MSC_WRITECMD_LADDRIM; // Write addres to MSC hardware. MSC -> WRITECMD = MSC_WRITECMD_ERASEPAGE; // Command to erase of the first User FLASH page. !!! // !!! If I comment of the previous line the microcontroller works, otherwize it rebooted. // Wait for the FLASH erase process end. i = 0; while (((MSC -> STATUS & MSC_STATUS_BUSY) == MSC_STATUS_BUSY) && (i < 100000)) { i++; } ... // Write of the CKS. MSC -> ADDRB = FLASH_Addr; // Set of the FLASH User memory address. FLASH_Addr = FLASH_Addr + 4; // Increment of the FLASH Address. MSC -> WDATA = CKS; // Write of the dara to FLASH write. MSC -> WRITECMD = MSC_WRITECMD_LADDRIM; // Write addres to hardware. MSC -> WRITECMD = MSC_WRITECMD_WRITEONCE; // Command to write of the one word. // !!! If I comment of the previous line the microcontroller works, otherwize it rebooted. i = 0; while (((MSC -> STATUS & MSC_STATUS_BUSY) == MSC_STATUS_BUSY) && (i < 100000)) { i++; } MSC-> WRITECTRL &= ~MSC_WRITECTRL_WREN; // Disable of the FLASH writting. MSC->LOCK = 0x0; // Lock of the FLASH writting. WDOG_Enable (true); // Enable of the watchdog. WDOG_Feed(); // Reset of the Watchdog. Перезагузка происходит при любой попытке изменить FLASH - стереть или записать. Вчитавшись в User Guide обнаружил маленькую сноску, смысл коиорой - все операции с FLASH только при коде в RAM. Собственно сам вопрос - не даст ли кто ссылку или кусочек кода как грамотно перенести исполняемую функцию в область RAM?
  12. Чтение USer FLASH в EFM32

    Добрый день! Пишу для EFM32G880F128. Мне надо прочитать данные, записанные мной в область User FLASH. Не поделиться ли кто кусочком кода? Пытался работать через указатели, присваивая указателю значение 0xFE0 0000 - начало User Flash - не прошло на этапе компиляции. Пока ничего не придумал, а надо побыстрее.
  13. Добрый день! Ещё два вопроса возникли по ходу дела. Использую MSP430F5528. Не поскажет ли кто, правильно ли я понял, что Information Memory как раз и предназначена для хранения коэффициентов, которые нужно помнить при отключени питания, в User Guide просто написано, что она есть, линковщик её не трогает? Железо пока не готово, поэтому, отлаживаю под Симулятором. Не сталкивался ли кто с тем, что блоки FLASH под Симулятором не стираются, как надо? Для инициализации процесса стирания использовал функцию, найденную в Example (void Flash_SegmentErase(uint16_t *Flash_ptr)). В попытках стереть сегмент переписал её не Ассемблере (пример из User Guide) - нет результата. При отладке выбранный сегмент не устанавливается в 0xFF, это результат неверной работы Симулятора, или моё недопонимание?
  14. Добрый день! Спасибо за ответ. Вот мой вариант решения, может кому пригодится. Посмотрел в MAP файле раскладку, нашёл последний сегмент во Flash, (0xC200 в банке A), жёстко привязал массив к этому адресу #pragma location = 0xC200 const unsigned char SX1276_Init_Data [128] = {...}; Убедился по MAP файлу, что массив лёг куда надо, не "задев" никого, затем воспользовался модулем \IAR\430\FET_examples\MSP-EXP430F5529\F5xx_F6xx_Core_Lib\HAL_FLASH.C, поставляемым с IAR, там всё есть для работы с FLASH. Думаю, есть более изящный способ. Чего хочется - получить в IDE конечный адрес кода после линковки (псть будет End_Code). Размер стираемого сегмента в MSP430F5528 512 байт - автоматически разместить мой массив в конце кода ((End_Code mod 512) + 1) * 512. Не знаю, как получить конечный адрес кода. Может есть лучшие решения?
  15. Пишу для MSP430. Мне необходимо разместить во FLASH массив, который будет програмно переписываться. Как мне объяснить линковщику, что я хочу разместить этот массив в отдельном сегменте, и поместить этот сегмент после сегментов исполняемого кода? Совпадают ли границы сегментов с аппаратными границами FLASH сегментов микроконтроллера MSP430, то есть могу я стирать сегмент, пользуясь его адресом, полученным при компиляции или самому надо озаботиться, чтобы этот адрес совпадал с началом аппаратного FLASH сегмента?
  16. Добрый день! Memory model Large: Variables in XDATA. Пробовал даже перед декларацией каждой переменной ставить XDATA. Code ROM size: Large 64 K Program Поставил галочки в Use OnChip ROM, Use OnChip XRAM. Ошибка Error L107 - Address space Overflow. Память, действительно, сегментирована, но первые 32 К - не сегментированные, переключаются на три банка "верхние" 32 К. У меня программа на данный момент даже без оптимизации кода 63222 байта и RAM 2876 Байт. То есть должно умещаться без переключения сегментов. Да, ещё, про оптимизацию. Использую прерывания по часовому таймеру (static void Alarm_isr (void) interrupt 8 using 1). При уровне оптимизации кода до 2 (Data Overlaying) включительно работает как и хочу. Если не изменяя кода поставить уровень оптимизации выше - прерывается один раз и дальше программа не идёт. С отладчиком было бы просто, но, так как программа "пролеченная" аппаратный отладчик Silicon Laboratories USB Debug Adapter умеет только загружать программу. Отлаживать приходится на Симуляторе, а он не умеет прерыватьсяя от таймера. Может, кто сталкивался с нюансами оптимизации?
  17. Добрый день! Работаю в среде Keil, пишу для Si1020 - микроконтроллер, совместимый с 8051 по командам, но 128 KB Flash и 8 KB RAM. При компиляции проекта возникла ошибка линковщика L107 - Address Space Overflow, хотя в сумме размер скомпилированного кода 63138 байт, а RAM - 5116 байт, что меньше 128 К и 8 К, соответственно. Не поможет ли кто понять в чём я неправ?
  18. Я нашёл на Torrent. Пока, вроде, всё работает. Спасибо.
  19. Спасибо большое. У меня только KeyGen. Если есть возможность не укажите ли ли ссылку?
  20. Добрый день! Пишу в Keil для 80C51. Поставил новую версию 5. Не работает старый Crack (KeyGen по сигнатуре, генерируемой Keil). После ввода кода из KeyGen в таблицу License Manager лицензия до 2020 года добавляется, но остаётся ограничение длины кода на 2 КБайт. ТО есть пробная версия. Вернул старый вариант - ограничение осталось. Снёс, вычистил руками реестр от всех упоминаний Keil, переустановил страрый вариант - ограничение осталось. Не поможет ли кто? Потому как совсем не здорово - программы за 50 КБайт зашкаливают, а отладить ни в Simulator -е, ни в Debuger -е не могу.
  21. Да, спасибо. Несколько вариантов. От простейшей ёмкости до удлиннителя с встроенным фильтром. Смотрел не спектроанализаторе. Активно шумит до 1 Мгц. Может, кто посоветует литературу?
×
×
  • Создать...