├── Scheme ├── README.md └── Schematic_SUP_Programmator.png ├── Firmware_IAR ├── Source │ ├── font.c │ ├── SSD1306.c │ ├── parsing.c │ ├── system.c │ ├── usart.c │ ├── settings │ │ ├── SUP_Reader_Writer.dbgdt │ │ ├── SUP_Reader_Writer.Debug.driver.xcl │ │ ├── SUP_Reader_Writer.Debug.general.xcl │ │ ├── SUP_Reader_Writer.dnx │ │ ├── SUP_Reader_Writer.Debug.cspy.ps1 │ │ ├── SUP_Reader_Writer.Debug.cspy.bat │ │ └── SUP_Games.wsdt │ ├── flash_operation.c │ ├── SUP_Games.eww │ ├── led.c │ ├── all_logic.c │ ├── button.c │ ├── timers.c │ ├── main.c │ ├── SSD1306.h │ ├── display.c │ ├── i2c_soft.c │ ├── SUP_Reader_Writer.dep │ ├── k5l.c │ └── SUP_Reader_Writer.ewp ├── README.md └── Compiled_HEX │ ├── Programmator_1000000_2048_16Mhz.hex │ └── Programmator_115200_2048_16Mhz.hex ├── LICENSE ├── README.md ├── .gitignore └── Python_console_app ├── Read.py ├── Write.py └── README.md /Scheme/README.md: -------------------------------------------------------------------------------- 1 | # SUP Console flash programmator 2 | ## _Принципиальная схема программатора_ 3 | -------------------------------------------------------------------------------- /Firmware_IAR/Source/font.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Promolife/sup_console_programmator/HEAD/Firmware_IAR/Source/font.c -------------------------------------------------------------------------------- /Firmware_IAR/Source/SSD1306.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Promolife/sup_console_programmator/HEAD/Firmware_IAR/Source/SSD1306.c -------------------------------------------------------------------------------- /Firmware_IAR/Source/parsing.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Promolife/sup_console_programmator/HEAD/Firmware_IAR/Source/parsing.c -------------------------------------------------------------------------------- /Firmware_IAR/Source/system.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Promolife/sup_console_programmator/HEAD/Firmware_IAR/Source/system.c -------------------------------------------------------------------------------- /Firmware_IAR/Source/usart.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Promolife/sup_console_programmator/HEAD/Firmware_IAR/Source/usart.c -------------------------------------------------------------------------------- /Firmware_IAR/Source/settings/SUP_Reader_Writer.dbgdt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Firmware_IAR/Source/flash_operation.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Promolife/sup_console_programmator/HEAD/Firmware_IAR/Source/flash_operation.c -------------------------------------------------------------------------------- /Scheme/Schematic_SUP_Programmator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Promolife/sup_console_programmator/HEAD/Scheme/Schematic_SUP_Programmator.png -------------------------------------------------------------------------------- /Firmware_IAR/Source/SUP_Games.eww: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $WS_DIR$\SUP_Reader_Writer.ewp 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Firmware_IAR/Source/settings/SUP_Reader_Writer.Debug.driver.xcl: -------------------------------------------------------------------------------- 1 | "--cpu=m2560" 2 | 3 | "--enhanced_core" 4 | 5 | "--64bit_doubles" 6 | 7 | "-p" 8 | 9 | "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\avr\Config\iom2560.ddf" 10 | 11 | "--eeprom_size" 12 | 13 | "4096" 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Firmware_IAR/Source/settings/SUP_Reader_Writer.Debug.general.xcl: -------------------------------------------------------------------------------- 1 | "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\avr\bin\avrproc.dll" 2 | 3 | "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\avr\bin\avrsim.dll" 4 | 5 | "D:\Google Disk\EProjects\SUP_Programm\Firmware_and_console_app\Firmware\Debug\Exe\SUP_Reader_Writer.hex" 6 | 7 | --plugin="C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\avr/bin/avrlibsupportbat.dll" 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Firmware_IAR/Source/led.c: -------------------------------------------------------------------------------- 1 | #define LED_DDR DDRH 2 | #define LED_PORT PORTH 3 | #define LED_W 4 4 | #define LED_R 3 5 | 6 | void LED_INIT() 7 | { 8 | LED_DDR |= (1<_<скорость_в_бод>_<максимальный_размер_блока_данных>_<тактовая_частота_микроконтроллера>.hex 9 | ``` 10 | Внимание! `<скорость_в_бод>` должна совпадать со скорость работы COM-порта. 11 | 12 | ## Исходный код программатора 13 | Находится в директории `Source` 14 | Исходный код написан на языке C в среде разработки IAR Embedded Workbench for Microchip AVR 7.30.4 и сохранен проектом. -------------------------------------------------------------------------------- /Firmware_IAR/Source/button.c: -------------------------------------------------------------------------------- 1 | #define BUTT_DDR DDRB 2 | #define BUTT_PORT PORTB 3 | #define BUTT_PIN PINB 4 | #define BUTT_R 6 5 | #define BUTT_E 5 6 | #define BUTT_W 4 7 | 8 | #define BUTT_CHECK_DELAY 30 9 | 10 | void BUTT_INIT() 11 | { 12 | BUTT_DDR |= (0< 2 | 3 | 4 | 0 5 | 1 6 | 90 7 | 1 8 | 1 9 | 1 10 | main 11 | 0 12 | 50 13 | 14 | 15 | 0 16 | 1 17 | 18 | 19 | 0 20 | 0 21 | 1 22 | 0 23 | 1 24 | 25 | 26 | 0 27 | 28 | 29 | 0 30 | 0 31 | 32 | 33 | -------------------------------------------------------------------------------- /Firmware_IAR/Source/timers.c: -------------------------------------------------------------------------------- 1 | void TIMER0_INIT() // Timer 0 On for count of milliseconds 2 | { 3 | OCR0A = 125; 4 | TCCR0B |= (0 << CS02)| (1 << CS01) | (1 << CS00); 5 | TIMSK0 |= (1< RX0_Timeout) 14 | { 15 | USART0_RECIEVED_DISABLE(); 16 | ClrFlag(RX_Status,RX_Enable); 17 | ClrFlag(RX_Status,RX_Timer_Start); 18 | SetFlag(RX_Status,RX_Timeout); 19 | SetFlag(RX_Status,RX_Parsing); 20 | Timer0_UART_Timeout_Counter = 0; 21 | RX0_Buffer_Counter = 0; 22 | } 23 | } 24 | 25 | } 26 | 27 | /*--------------------Interrupt Timer 0---------------------------------*/ 28 | #pragma vector = TIMER0_COMPA_vect 29 | __interrupt void time_counter0() 30 | { 31 | UART0_Timeout(); 32 | Timer0_Counter++; 33 | } 34 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Promolife 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Firmware_IAR/Source/main.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | #include "system.c" // System config 7 | #include "led.c" // LED driver 8 | #include "button.c" // Buttons driver 9 | #include "usart.c" // USART driver 10 | #include "timers.c" // Timers driver 11 | #include "i2c_soft.c" // I2C Soft driver 12 | #include "SSD1306.c" // Display driver 13 | 14 | #include "k5l.c" // K5L2731CCA-D770 Flash chip driver 15 | #include "flash_operation.c" // Flash operation 16 | 17 | #include "parsing.c" // USART parsing data from PC 18 | #include "all_logic.c" // Main logic 19 | 20 | 21 | 22 | void main( void ) 23 | { 24 | main_init(); 25 | main_start(); 26 | main_loop(); 27 | } 28 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SUP Console flash programmator 2 | ## _Все представленное здесь делается Вами на свой страх и риск._ 3 | 4 | Простой программатор параллельной flash памяти 5 | 6 | - Построен на доступной Arduino Mega 2560 7 | - Минимум дополнительный деталей 8 | - Простота повторения 9 | 10 | ## Возможности 11 | 12 | - Стирание, чтение и запись микросхемы памяти K5L2731CAA-D770 или ей подобных 13 | - Контроль процесса передачи данных между компьютером и программатором 14 | - Контроль процесса записи данных на Flash 15 | - Световая индикация процессов (Запись, Чтение, Стирание, Ошибка) 16 | - Можно определить поведение кнопок (Через исходный код прошивки) 17 | - Можно выводить информацию о процессе на дисплей программатора (Через исходный код прошивки) 18 | - Высокая скорость работы: до 1Mbit/S (Можно и выше, но производительность микроконтроллера не позволяет поднять скорость) 19 | 20 | ## Установка проекта 21 | 22 | Необходим Python не ниже версии 3.9.10. Все операции описаны для ОС Windows с установленным GitBash. 23 | - Необходимо выполнять от имени администратора. 24 | 25 | Клонируем репозиторий с GIT: 26 | 27 | ```sh 28 | git clone git@github.com:Promolife/sup_console_programmator.git 29 | ``` 30 | Заходим в директорию проекта 31 | 32 | ```sh 33 | cd sup_console_programmator 34 | ``` 35 | Устанавливаем и активируем виртуальное окружение 36 | 37 | ```sh 38 | python -m venv venv 39 | source venv/Scripts/activate 40 | ``` 41 | 42 | Обновляем pip и устанавливаем зависимости 43 | 44 | ```sh 45 | python -m pip install --upgrade pip 46 | pip install pyserial 47 | ``` 48 | 49 | Готово! Можно начинать использовать. -------------------------------------------------------------------------------- /Firmware_IAR/Source/SSD1306.h: -------------------------------------------------------------------------------- 1 | #define BLACK 0 2 | #define WHITE 1 3 | #define INVERSE 2 4 | 5 | 6 | 7 | #define ssd1306_ADDRESS 0x3C 8 | #define DC_BIT 6 9 | #define CONTROL_BYTE_COMMAND 0 << DC_BIT 10 | #define CONTROL_BYTE_DATA 1 << DC_BIT 11 | #define WRITE 0 12 | 13 | 14 | #define SSD1306_LCDWIDTH 128 15 | #define SSD1306_LCDHEIGHT 32 16 | 17 | 18 | #define SSD1306_SETCONTRAST 0x81 19 | #define SSD1306_DISPLAYALLON_RESUME 0xA4 20 | #define SSD1306_DISPLAYALLON 0xA5 21 | #define SSD1306_NORMALDISPLAY 0xA6 22 | #define SSD1306_INVERTDISPLAY 0xA7 23 | #define SSD1306_DISPLAYOFF 0xAE 24 | #define SSD1306_DISPLAYON 0xAF 25 | 26 | #define SSD1306_SETDISPLAYOFFSET 0xD3 27 | #define SSD1306_SETCOMPINS 0xDA 28 | 29 | #define SSD1306_SETVCOMDETECT 0xDB 30 | 31 | #define SSD1306_SETDISPLAYCLOCKDIV 0xD5 32 | #define SSD1306_SETPRECHARGE 0xD9 33 | 34 | #define SSD1306_SETMULTIPLEX 0xA8 35 | 36 | #define SSD1306_SETLOWCOLUMN 0x00 37 | #define SSD1306_SETHIGHCOLUMN 0x10 38 | 39 | #define SSD1306_SETSTARTLINE 0x40 40 | 41 | #define SSD1306_MEMORYMODE 0x20 42 | #define SSD1306_COLUMNADDR 0x21 43 | #define SSD1306_PAGEADDR 0x22 44 | 45 | #define SSD1306_COMSCANINC 0xC0 46 | #define SSD1306_COMSCANDEC 0xC8 47 | 48 | #define SSD1306_SEGREMAP 0xA0 49 | 50 | #define SSD1306_CHARGEPUMP 0x8D 51 | 52 | #define SSD1306_EXTERNALVCC 0x1 53 | #define SSD1306_SWITCHCAPVCC 0x2 54 | 55 | // Scrolling #defines 56 | #define SSD1306_ACTIVATE_SCROLL 0x2F 57 | #define SSD1306_DEACTIVATE_SCROLL 0x2E 58 | #define SSD1306_SET_VERTICAL_SCROLL_AREA 0xA3 59 | #define SSD1306_RIGHT_HORIZONTAL_SCROLL 0x26 60 | #define SSD1306_LEFT_HORIZONTAL_SCROLL 0x27 61 | #define SSD1306_VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL 0x29 62 | #define SSD1306_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL 0x2A -------------------------------------------------------------------------------- /Firmware_IAR/Source/settings/SUP_Reader_Writer.Debug.cspy.ps1: -------------------------------------------------------------------------------- 1 | param([String]$debugfile = ""); 2 | 3 | # This powershell file has been generated by the IAR Embedded Workbench 4 | # C - SPY Debugger, as an aid to preparing a command line for running 5 | # the cspybat command line utility using the appropriate settings. 6 | # 7 | # Note that this file is generated every time a new debug session 8 | # is initialized, so you may want to move or rename the file before 9 | # making changes. 10 | # 11 | # You can launch cspybat by typing Powershell.exe -File followed by the name of this batch file, followed 12 | # by the name of the debug file (usually an ELF / DWARF or UBROF file). 13 | # 14 | # Read about available command line parameters in the C - SPY Debugging 15 | # Guide. Hints about additional command line parameters that may be 16 | # useful in specific cases : 17 | # --download_only Downloads a code image without starting a debug 18 | # session afterwards. 19 | # --silent Omits the sign - on message. 20 | # --timeout Limits the maximum allowed execution time. 21 | # 22 | 23 | 24 | if ($debugfile -eq "") 25 | { 26 | & "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "D:\Google Disk\EProjects\SUP_Programm\Firmware_and_console_app\Firmware\settings\SUP_Reader_Writer.Debug.general.xcl" --backend -f "D:\Google Disk\EProjects\SUP_Programm\Firmware_and_console_app\Firmware\settings\SUP_Reader_Writer.Debug.driver.xcl" 27 | } 28 | else 29 | { 30 | & "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "D:\Google Disk\EProjects\SUP_Programm\Firmware_and_console_app\Firmware\settings\SUP_Reader_Writer.Debug.general.xcl" --debug_file=$debugfile --backend -f "D:\Google Disk\EProjects\SUP_Programm\Firmware_and_console_app\Firmware\settings\SUP_Reader_Writer.Debug.driver.xcl" 31 | } 32 | -------------------------------------------------------------------------------- /Firmware_IAR/Source/settings/SUP_Reader_Writer.Debug.cspy.bat: -------------------------------------------------------------------------------- 1 | @REM This batch file has been generated by the IAR Embedded Workbench 2 | @REM C-SPY Debugger, as an aid to preparing a command line for running 3 | @REM the cspybat command line utility using the appropriate settings. 4 | @REM 5 | @REM Note that this file is generated every time a new debug session 6 | @REM is initialized, so you may want to move or rename the file before 7 | @REM making changes. 8 | @REM 9 | @REM You can launch cspybat by typing the name of this batch file followed 10 | @REM by the name of the debug file (usually an ELF/DWARF or UBROF file). 11 | @REM 12 | @REM Read about available command line parameters in the C-SPY Debugging 13 | @REM Guide. Hints about additional command line parameters that may be 14 | @REM useful in specific cases: 15 | @REM --download_only Downloads a code image without starting a debug 16 | @REM session afterwards. 17 | @REM --silent Omits the sign-on message. 18 | @REM --timeout Limits the maximum allowed execution time. 19 | @REM 20 | 21 | 22 | @echo off 23 | 24 | if not "%~1" == "" goto debugFile 25 | 26 | @echo on 27 | 28 | "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "D:\Google Disk\EProjects\SUP_Programm\Firmware_and_console_app\Firmware\settings\SUP_Reader_Writer.Debug.general.xcl" --backend -f "D:\Google Disk\EProjects\SUP_Programm\Firmware_and_console_app\Firmware\settings\SUP_Reader_Writer.Debug.driver.xcl" 29 | 30 | @echo off 31 | goto end 32 | 33 | :debugFile 34 | 35 | @echo on 36 | 37 | "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "D:\Google Disk\EProjects\SUP_Programm\Firmware_and_console_app\Firmware\settings\SUP_Reader_Writer.Debug.general.xcl" "--debug_file=%~1" --backend -f "D:\Google Disk\EProjects\SUP_Programm\Firmware_and_console_app\Firmware\settings\SUP_Reader_Writer.Debug.driver.xcl" 38 | 39 | @echo off 40 | :end -------------------------------------------------------------------------------- /Firmware_IAR/Source/display.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | void bigdig2(unsigned char x, unsigned char y, unsigned char dig) 4 | {unsigned char dig1=0; 5 | while(dig >= 10){dig1++;dig -= 10;} 6 | digit_size(x,y,dig1);digit_size(x+13,y,dig);} 7 | 8 | void bigdig3(unsigned char x, unsigned char y, unsigned int dig) 9 | { unsigned char dig1=0,dig2=0; 10 | while(dig >= 100){dig1++;dig -= 100;} 11 | while(dig >= 10){dig2++;dig -= 10;} 12 | digit_size(x,y,dig1);digit_size(x+13,y,dig2);digit_size(x+26,y,dig);} 13 | 14 | void bigdig4(unsigned char x, unsigned char y, unsigned int dig) 15 | {unsigned char dig1=0,dig2=0,dig3=0; 16 | while(dig >= 1000){dig1++;dig -= 1000;} 17 | while(dig >= 100){dig2++;dig -= 100;} 18 | while(dig >= 10){dig3++;dig -= 10;} 19 | digit_size(x,y,dig1);digit_size(x+13,y,dig2);digit_size(x+26,y,dig3);digit_size(x+39,y,dig);} 20 | 21 | void bigdig5(unsigned char x, unsigned char y, unsigned int dig) 22 | {unsigned char dig1=0,dig2=0,dig3=0,dig4=0; 23 | while(dig >= 10000){dig1++;dig -= 10000;} 24 | while(dig >= 1000){dig2++;dig -= 1000;} 25 | while(dig >= 100){dig3++;dig -= 100;} 26 | while(dig >= 10){dig4++;dig -= 10;} 27 | digit_size(x,y,dig1);digit_size(x+13,y,dig2);digit_size(x+26,y,dig3); 28 | digit_size(x+39,y,dig4);digit_size(x+52,y,dig);} 29 | 30 | 31 | void adv(unsigned char sec) 32 | { 33 | PrintStringF(40,0,KRD); 34 | PrintStringF(15,1,EL); 35 | PrintStringF(0,2,WWW); 36 | PrintStringF(0,3,EMAIL); 37 | for(unsigned char i=0; i < sec; i++){ 38 | delay_s(1);} 39 | } 40 | 41 | 42 | void statistic() 43 | { 44 | if(system_flag & DISP_FLAG){ 45 | if((system_flag & MODE_FLAG)){ 46 | 47 | //READ_KEY(ADMIN1_KEY); 48 | //dig3(98,0, CHECK_MATCH_KEY()); 49 | //READ_iBUTTON(); 50 | //goto_xy(0,0); 51 | //printf("%02X%02X%02X%02X%02X%02X%02X%02X",iBUTTON_SERIAL[0],iBUTTON_SERIAL[1],iBUTTON_SERIAL[2],iBUTTON_SERIAL[3],iBUTTON_SERIAL[4],iBUTTON_SERIAL[5],iBUTTON_SERIAL[6],iBUTTON_SERIAL[7]); 52 | 53 | PrintStringF(36,0,Time); 54 | PrintStringF(0,1,Cycle);dig2(34,1,mT); PrintString(48,1,":"); dig2(54,1,sT); 55 | PrintStringF(0,2,Ending);dig2(34,2,mD); PrintString(48,2,":"); dig2(54,2,sD); 56 | PrintStringF(0,3,Fall);dig2(54,3,fail_second); 57 | PrintStringF(70,0,Day); 58 | dig3(75,1,counter_day); 59 | dig3(75,2,counter_dokat_day); 60 | dig3(75,3,counter_fail_day);} 61 | PrintStringF(97,0,Total); 62 | dig5(97,1,counter_total); 63 | dig5(97,2,counter_dokat); 64 | dig5(97,3,counter_fail); 65 | system_flag &= ~DISP_FLAG;} 66 | } 67 | 68 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | 131 | # IAR 132 | debug/ 133 | -------------------------------------------------------------------------------- /Python_console_app/Read.py: -------------------------------------------------------------------------------- 1 | import datetime as dt 2 | import time 3 | 4 | import serial 5 | 6 | READFILE = 'dump.bin' # Filename. 7 | COMPORT = 'COM3' # Number of comport. 8 | 9 | COM_BAUDRATE = 1000000 # Port speed in baud. 10 | FLASH_ADDRESS_BEGIN = 0x00000000 11 | FLASH_ADDRESS_END = 0x0000FF00 12 | 13 | 14 | def send_read_command(address_begin, address_end, port): 15 | out_data = [] 16 | read_data_len = (FLASH_ADDRESS_END - FLASH_ADDRESS_BEGIN) * 2 17 | command = bytes("$RDR", encoding='utf-8') 18 | for i in command: 19 | out_data.append(i) 20 | out_data.append((address_begin >> 24) & 0x000000FF) 21 | out_data.append((address_begin >> 16) & 0x000000FF) 22 | out_data.append((address_begin >> 8) & 0x000000FF) 23 | out_data.append(address_begin & 0x000000FF) 24 | out_data.append((address_end >> 24) & 0x000000FF) 25 | out_data.append((address_end >> 16) & 0x000000FF) 26 | out_data.append((address_end >> 8) & 0x000000FF) 27 | out_data.append(address_end & 0x000000FF) 28 | port.write(out_data) 29 | while (1): 30 | answer = ser.readline() 31 | if (answer == bytes('$OK\r\n', 'UTF-8')): 32 | print('Dump in progress. Wait...') 33 | break 34 | return port.read(read_data_len) 35 | 36 | # -------------------------Main logic------------------------- 37 | 38 | 39 | if __name__ == "__main__": 40 | try: 41 | flash_file = open(READFILE, "wb+") 42 | except Exception: 43 | print('File is not create.') 44 | else: 45 | print('File is create') 46 | try: 47 | ser = serial.Serial(COMPORT, COM_BAUDRATE) 48 | except Exception: 49 | print("Can't open port") 50 | else: 51 | print('Port is open') 52 | time.sleep(2) 53 | ser.write(bytes("$AUT", encoding='utf-8')) 54 | while (ser.readline() != bytes('$OK\r\n', 'UTF-8')): 55 | () 56 | print("Programmator is ready") 57 | now = dt.datetime.utcnow() 58 | start_time = now + dt.timedelta(hours=3) 59 | print('Read start at', start_time) 60 | write_data = send_read_command( 61 | FLASH_ADDRESS_BEGIN, 62 | FLASH_ADDRESS_END, 63 | ser 64 | ) 65 | flash_file.write(write_data) 66 | now = dt.datetime.utcnow() 67 | finish_time = now + dt.timedelta(hours=3) 68 | print('Read end at', finish_time) 69 | print('Read completed in', finish_time - start_time) 70 | ser.close() 71 | print('Port is close') 72 | flash_file.close() 73 | print('Dump comlete') 74 | -------------------------------------------------------------------------------- /Firmware_IAR/Source/i2c_soft.c: -------------------------------------------------------------------------------- 1 | #define I2C_T 4000000 2 | #define F_CLK Fosc 3 | 4 | #define SDA_LN PH1 5 | #define SCL_LN PH0 6 | #define I2C_PIN PINH 7 | #define I2C_DDR DDRH 8 | #define I2C_PORT PORTH 9 | 10 | #define IN_LN 0 11 | #define OUT_LN 1 12 | #define ACK 1 13 | #define NOT_ACK 0 14 | 15 | unsigned char i2c_error; 16 | 17 | 18 | unsigned char in_sda(void) 19 | { 20 | if(I2C_PIN&(1<>=1; 127 | scl_set(0); 128 | } 129 | sda_io(OUT_LN); 130 | if(last_byte) 131 | sda_set(0); 132 | else 133 | sda_set(1); 134 | scl_set(1); 135 | scl_set(0); 136 | return data; 137 | } 138 | 139 | 140 | -------------------------------------------------------------------------------- /Firmware_IAR/Source/SUP_Reader_Writer.dep: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 4 | 1303478069 5 | 6 | Debug 7 | 8 | $PROJ_DIR$\usart.c 9 | $PROJ_DIR$\system.c 10 | $PROJ_DIR$\SSD1306.c 11 | $TOOLKIT_DIR$\inc\iom2560.h 12 | $PROJ_DIR$\led.c 13 | $PROJ_DIR$\i2c_soft.c 14 | $PROJ_DIR$\Debug\Obj\SUP_Reader_Writer.pbd 15 | $PROJ_DIR$\main.c 16 | $PROJ_DIR$\button.c 17 | $TOOLKIT_DIR$\src\template\cfgm2560.xcl 18 | $PROJ_DIR$\Debug\Exe\SUP_Reader_Writer.hex 19 | $PROJ_DIR$\flash_operation.c 20 | $PROJ_DIR$\SSD1306.h 21 | $PROJ_DIR$\Debug\Obj\main.xcl 22 | $PROJ_DIR$\parsing.c 23 | $TOOLKIT_DIR$\inc\bitdefinitions\iom2560.inc 24 | $TOOLKIT_DIR$\inc\clib\sysmac.h 25 | $TOOLKIT_DIR$\src\template\cfg5soim.xcl 26 | $PROJ_DIR$\Debug\Obj\main.__cstat.et 27 | $PROJ_DIR$\font.c 28 | $TOOLKIT_DIR$\inc\iomacro.h 29 | $TOOLKIT_DIR$\inc\clib\stdio.h 30 | $PROJ_DIR$\k5l.c 31 | $PROJ_DIR$\Debug\List\SUP_Reader_Writer.map 32 | $PROJ_DIR$\all_logic.c 33 | $TOOLKIT_DIR$\inc\intrinsics.h 34 | $PROJ_DIR$\Debug\Obj\main.r90 35 | $PROJ_DIR$\timers.c 36 | $TOOLKIT_DIR$\inc\clib\string.h 37 | $TOOLKIT_DIR$\lib\clib\cl5s-ec_mul-64.r90 38 | $TOOLKIT_DIR$\inc\clib\stdarg.h 39 | 40 | 41 | [ROOT_NODE] 42 | 43 | 44 | XLINK 45 | 10 23 46 | 47 | 48 | 49 | 50 | $PROJ_DIR$\main.c 51 | 52 | 53 | ICCAVR 54 | 26 55 | 56 | 57 | BICOMP 58 | 13 59 | 60 | 61 | __cstat 62 | 18 63 | 64 | 65 | 66 | 67 | ICCAVR 68 | 3 20 15 21 16 30 25 28 1 4 8 0 27 5 2 12 19 22 11 14 24 69 | 70 | 71 | 72 | 73 | $PROJ_DIR$\Debug\Exe\SUP_Reader_Writer.hex 74 | 75 | 76 | XLINK 77 | 23 78 | 79 | 80 | 81 | 82 | XLINK 83 | 9 17 26 29 84 | 85 | 86 | 87 | 88 | 89 | Release 90 | 91 | 92 | [MULTI_TOOL] 93 | XLINK 94 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /Python_console_app/Write.py: -------------------------------------------------------------------------------- 1 | import datetime as dt 2 | import time 3 | 4 | import serial 5 | 6 | WRITEFILE = 'write.bin' # Filename 7 | 8 | SendBlockLength = 2048 # The length of the data packet to write in bytes. 9 | Com_Baudrate = 1000000 # Port speed in baud. 10 | 11 | 12 | def crc16(data: bytes): 13 | """ Calculate CRC16 check summ. """ 14 | crc = 0 15 | for x in data: 16 | crc = crc ^ x 17 | for i in range(8): 18 | if (crc & 0x0001): 19 | crc = (crc >> 1) ^ 0xA001 20 | else: 21 | crc = crc >> 1 22 | crc &= 0xFFFF 23 | return crc 24 | 25 | 26 | def get_file_size(data: bytes): 27 | counter_data_size = 0 28 | for i in data: 29 | counter_data_size += 1 30 | return counter_data_size 31 | 32 | 33 | def send_write_block(address, data): 34 | out_data = [] 35 | command = bytes('$WRB', encoding='utf-8') 36 | counter_data_size = 0 37 | crc_data_summ = crc16(data) 38 | for i in data: 39 | counter_data_size += 1 40 | for i in command: 41 | out_data.append(i) 42 | out_data.append((counter_data_size >> 8) & 0x00FF) 43 | out_data.append(counter_data_size & 0x00FF) 44 | out_data.append((address >> 24) & 0x000000FF) 45 | out_data.append((address >> 16) & 0x000000FF) 46 | out_data.append((address >> 8) & 0x000000FF) 47 | out_data.append(address & 0x000000FF) 48 | for i in data: 49 | out_data.append(i) 50 | out_data.append((crc_data_summ >> 8) & 0x00FF) 51 | out_data.append(crc_data_summ & 0x00FF) 52 | return out_data 53 | 54 | 55 | def build_send_pack(data: bytes): 56 | counterbyte = 0 57 | counterblock = 0 58 | counter_byte = 0 59 | addressblock = 0 60 | blockarray = [] 61 | for byteappend in data: 62 | if (counterbyte == SendBlockLength): 63 | addressblock = int((SendBlockLength / 2) * counterblock) 64 | print(f'Write address {addressblock:012x} Block {counterblock}') 65 | ser.write(send_write_block(addressblock, blockarray)) 66 | while (1): 67 | answer = ser.readline() 68 | if (answer == bytes('$OK\r\n', 'UTF-8')): 69 | break 70 | elif (answer == bytes('$ERRCRC\r\n', 'UTF-8')): 71 | print('CRC Error. Write stopped') 72 | return 0 73 | elif (answer == bytes('$WRTCRCERR\r\n', 'UTF-8')): 74 | print('Block verification error. Write stopped') 75 | return 0 76 | blockarray.clear() 77 | counterblock += 1 78 | counterbyte = 0 79 | blockarray.append(byteappend) 80 | counterbyte += 1 81 | if (counterbyte > 0): 82 | for i in range(counterbyte, SendBlockLength): 83 | blockarray.append(0xff) 84 | counter_byte += 1 85 | addressblock = int((SendBlockLength / 2) * counterblock) 86 | print(f'Write address {addressblock:012x} Block {counterblock}') 87 | ser.write(send_write_block(addressblock, blockarray)) 88 | while (1): 89 | answer = ser.readline() 90 | if (answer == bytes('$OK\r\n', 'UTF-8')): 91 | break 92 | elif (answer == bytes('$ERRCRC\r\n', 'UTF-8')): 93 | print('CRC Error. Write stopped') 94 | return 0 95 | elif (answer == bytes('$WRTCRCERR\r\n', 'UTF-8')): 96 | print('Block verification error. Write stopped') 97 | return 0 98 | return 1 99 | 100 | # -------------------------Main programm------------------------- 101 | 102 | 103 | if __name__ == "__main__": 104 | try: 105 | Flash_File = open(WRITEFILE, 'rb') 106 | except Exception: 107 | print(f'File {WRITEFILE} is not found.') 108 | else: 109 | Flash_File_buffer_array = Flash_File.read() 110 | Flash_File.close() 111 | print('File is load.') 112 | try: 113 | ser = serial.Serial('COM3', Com_Baudrate) 114 | except Exception: 115 | print('Can\'t open port.') 116 | else: 117 | print('Port is open.') 118 | time.sleep(2) 119 | ser.write(bytes('$AUT', encoding='utf-8')) 120 | while (ser.readline() != bytes('$OK\r\n', 'UTF-8')): 121 | () 122 | print('Programmator is ready.') 123 | print('Erase Flash. Wait, it\'s take a several time.') 124 | now = dt.datetime.utcnow() 125 | start_time = now + dt.timedelta(hours=3) 126 | print('Erase start at', start_time) 127 | time.sleep(1) 128 | ser.write(bytes('$ERS', encoding='utf-8')) 129 | while (ser.readline() != bytes('$OK\r\n', 'UTF-8')): 130 | () 131 | print('Erase complete') 132 | now = dt.datetime.utcnow() 133 | finish_time = now + dt.timedelta(hours=3) 134 | print('Erase end at', finish_time) 135 | print('Flash erase completed in', finish_time - start_time) 136 | time.sleep(3) 137 | FileSize = get_file_size(Flash_File_buffer_array) 138 | print('File size, byte: ', FileSize) 139 | print('Blocks is: ', int(FileSize/SendBlockLength)) 140 | time.sleep(5) 141 | now = dt.datetime.utcnow() 142 | start_time = now + dt.timedelta(hours=3) 143 | print('Start write at', start_time) 144 | build_send_pack(Flash_File_buffer_array) 145 | now = dt.datetime.utcnow() 146 | finish_time = now + dt.timedelta(hours=3) 147 | print('Write end at', finish_time) 148 | print('Flash write completed in', finish_time - start_time) 149 | ser.close() 150 | print('Port close') 151 | -------------------------------------------------------------------------------- /Python_console_app/README.md: -------------------------------------------------------------------------------- 1 | # SUP Console flash programmator 2 | 3 | ## _Описание консольных программ и протокола обмена с программатором_ 4 | 5 | # Протокол обмена 6 | Протокол обмена с программатором простой и состоит всего из нескольких команд. Любая команда начинается с символа `$`, иначе пришлет ответ `$ERR\r\n`. Если команда не будет найдена, вернется ответ `$NODATA` 7 | В ответ программатор присылает краткие ответы или данные, запрашиваемые пользователем. 8 | Список команд: 9 | | Команда | Описание | 10 | | ------ | ------ | 11 | | $AUT | Are you there? Опрос программатора на его присутствие. В ответ должен прислать `$OK\r\n` | 12 | | $MRT | Memory Type. В случае присутствия flash пришлет в ответ `<7 байт>\r\n` индетификатора flash | 13 | | $ERS | Erase. Очистка flash. Довольно продолжительный процесс! При начале выполнения пришлет `$WAIT\r\n` По окончанию пришлет `$OK\r\n` В случае ошибки пришлет `$ERR\r\n` | 14 | | $WRB | Write block. Запишет информацию по указанному блоку. Формат и возможные ответы описаны ниже| 15 | | $RDR | Read Range. Ответит `$OK\r\n` и через 1 секунду пришлет поток данных, прочитанных в диапазоне указанных адресов. Формат и возможные ответы описаны ниже | 16 | | $RDA | Read Address. Пришлет 16-битное содержимое ячейки flash по указанному адресу. Младший байт первым.| 17 | | $RST | Reset. Программный сброс flash памяти. В ответ должен прислать `$OK\r\n`| 18 | 19 | Описания формата отправки данных командой `$WRB` 20 | По умолчанию размер блока данных 2048 байт, так же в запросе присутствует дополнительные служебные 16 байт данных. Размер блока данных указывается в исходном коде прошивки в файле `system.c` в определении `#define RX0_Buffer_Size 2048 + 16`, где 2048 - это максимальный размер данных, присланных за раз; 16 - размер служебной интформации. В случае, если информации меньше указанного размера блока, блок должен быть дополнен байтами `0xFF` до указанных размеров. 21 | 22 | Формат данных: 23 | ```sh 24 | $WRB<2 байта размер блока><4 байта начального адреса записи блока><Данные блока><2 байта CRC16 данных> 25 | ``` 26 | Служебные байты пишутся по старшенству: от старшего к младшим. 27 | После приема программатор может прислать один из 3 ответов: 28 | | Ответ | Описание | 29 | | ------ | ------ | 30 | | $OK\r\n | Все в порядке. Запись прошла успешно | 31 | | $ERRCRC\r\n | Ошибка CRC. Полученные данные некорректны.| 32 | | $WRTCRCERR\r\n | Ошибка CRC при чтении блока из flash.| 33 | 34 | Если произошел сбой записи, flash необходимо стереть, в противном случае запись будет невозможна и будут постоянно ошибки контрольных сумм в записи данных. 35 | 36 | Описания формата отправки данных командой `$RDR` 37 | Диапазон возможных адресов чтения указывается в исходном коде прошивки в файле `k5l.c` в определениях `#define Flash_address_begin 0x000000` и 38 | `#define Flash_address_end 0x7FFFFF`. На каждую единицу адреса приходиться 2 байта из flash. Первым будет приходить младший байт. 39 | 40 | Формат данных: 41 | ```sh 42 | $RDR<4 байта адреса начального блока чтения><4 байта адреса конечного блока чтения> 43 | ``` 44 | Похожий запрос на чтение одной ячейки: 45 | ```sh 46 | $RDA<4 байта адреса блока чтения> 47 | ``` 48 | Служебные байты пишутся по старшенству: от старшего к младшим. 49 | В ответ прийдёт последовательность запрашиваемых данных. `Важно!` Контрольные суммы отсутствуют. 50 | 51 | # Описание утилиты Write 52 | Утилита предназначена для передачи в программатор файла на запись. Файл будет передан и записан в бинарном виде, байт за байтом. 53 | 54 | Для запуска заходим в директорию проекта: 55 | ```sh 56 | cd sup_console_programmator 57 | ``` 58 | Активируем ранее установленное виртуальное окружение: 59 | ```sh 60 | source venv/Scripts/activate 61 | ``` 62 | Заходим в директорию утилит: 63 | ```sh 64 | cd Python_console_app 65 | ``` 66 | Запускаем программу: 67 | ```sh 68 | python Write.py 69 | ``` 70 | Все! Следите за сообщениями в консоли. 71 | 72 | # Настройка утилиты Write 73 | 74 | Имя файла указывается в константе `WRITEFILE = 'write.bin'`, где `write.bin` - имя файла для записи, лежащий в одной директории с файлом `Write.py` 75 | 76 | Номер COM-порта, который принадлежит Arduino Mega 2560, указывается в константе `COMPORT = 'COM3'`, где COM3 - порт Arduino 77 | 78 | `SendBlockLength = 2048` - здесь указывается размер блока данных, передаваемых в программатор. Не должен превышать указанное значение в файле `system.c` исходного кода прошивки программатора, в определении `#define RX0_Buffer_Size 2048 + 16`, где 2048 - это максимальный размер данных, присланных за раз; 16 - размер служебной интформации. 79 | 80 | `Com_Baudrate = 1000000` - скорость COM-порта, указанная в бод. Должно совпадать со скоростью, указанной в файле `usart.c` исходного кода прошивки программатора, в определении `#define BAUD_0 1000000`. Указанно значение максимальное. В случае сбоев передачи данных рекомендуется понижать значения, вплоть до установления надежной передачи данных. 81 | 82 | # Описание утилиты Read 83 | Утилита предназначена для чтения данных из flash и записи данных в файл. Файл будет перезаписан при каждом запуске утилиты и записан в бинарном виде, байт за байтом. 84 | 85 | Для запуска заходим в директорию проекта: 86 | ```sh 87 | cd sup_console_programmator 88 | ``` 89 | Активируем ранее установленное виртуальное окружение: 90 | ```sh 91 | source venv/Scripts/activate 92 | ``` 93 | Заходим в директорию утилит: 94 | ```sh 95 | cd Python_console_app 96 | ``` 97 | Запускаем программу: 98 | ```sh 99 | python Read.py 100 | ``` 101 | Следите за сообщениями в консоли. В отличии от Write.py данная утилита не выводит прогресс в консоль, а только констатирует факты событий. 102 | 103 | # Настройка утилиты Read 104 | 105 | Имя файла указывается в константе `READFILE = 'dump.bin'`, где `dump.bin` - имя файла для записи, лежащий в одной директории с файлом `Read.py` 106 | 107 | Номер COM-порта, который принадлежит Arduino Mega 2560, указывается в константе `COMPORT = 'COM3'`, где COM3 - порт Arduino 108 | 109 | `COM_BAUDRATE = 1000000` - скорость COM-порта, указанная в бод. Должно совпадать со скоростью, указанной в файле `usart.c` исходного кода прошивки программатора, в определении `#define BAUD_0 1000000`. ВАЖНО! Поскольку при чтении нет проверки на корректность принятых данных, рекомендуется проводить дамп на низкой скорости. 110 | 111 | `FLASH_ADDRESS_BEGIN = 0x00000000` и `FLASH_ADDRESS_END = 0x0000FF00` указывают начальный и конечный адрес чтения ячеек flash. `ВАЖНО!` flash читается 16-bit словами, следовательно, в представленном выше случае, будет прочитано 128 килобайт данных из flash. -------------------------------------------------------------------------------- /Firmware_IAR/Source/k5l.c: -------------------------------------------------------------------------------- 1 | /*K5L2731CCA-D770 Flash chip driver 2 | Author: Aleksandr A. Serdykov, Russia, Krasnodar 3 | Email: promolife@list.ru 4 | */ 5 | 6 | //---------------------SetUp for Flash-------- 7 | #define MByte_address_ddr DDRL 8 | #define MLByte_address_ddr DDRC 9 | #define LByte_address_ddr DDRA 10 | 11 | #define MByte_address_port PORTL 12 | #define MLByte_address_port PORTC 13 | #define LByte_address_port PORTA 14 | 15 | #define MByte_data_ddr DDRK 16 | #define LByte_data_ddr DDRF 17 | 18 | #define MByte_data_pin PINK 19 | #define LByte_data_pin PINF 20 | #define MByte_data_port PORTK 21 | #define LByte_data_port PORTF 22 | 23 | #define Control_ddr DDRD 24 | 25 | #define Control_port PORTD 26 | #define Control_port_CE 0 27 | #define Control_port_OE 1 28 | #define Control_port_WE 2 29 | #define Control_port_WP 3 30 | 31 | #define Flash_address_begin 0x000000 32 | #define Flash_address_end 0x7FFFFF 33 | 34 | unsigned char flashIDMessage[7]; 35 | 36 | //------------Function of Flash---------------------- 37 | void K5L_SET_ADDRESS(unsigned long address) 38 | { 39 | LByte_address_port = ((address) & 0x000000FF); 40 | MLByte_address_port = ((address >> 8) & 0x000000FF); 41 | MByte_address_port = ((address >> 16) & 0x000000FF); 42 | } 43 | 44 | void K5L_SET_DATA(unsigned int data) 45 | { 46 | MByte_data_port = Hi8(data); 47 | LByte_data_port = Lo8(data); 48 | } 49 | 50 | void K5L_READ_INIT() 51 | { 52 | MByte_address_ddr = 0xFF; 53 | MLByte_address_ddr = 0xFF; 54 | LByte_address_ddr = 0xFF; 55 | Control_ddr = 0xFF; 56 | MByte_data_ddr = 0x00; 57 | LByte_data_ddr = 0x00; 58 | SetBit(Control_port,Control_port_WP); 59 | K5L_SET_ADDRESS(0x00); 60 | K5L_SET_DATA(0x00); 61 | } 62 | 63 | void K5L_READ_ADDRESS_START() 64 | { 65 | ClrBit(Control_port,Control_port_CE); 66 | ClrBit(Control_port,Control_port_OE); 67 | SetBit(Control_port,Control_port_WE); 68 | } 69 | 70 | void K5L_READ_ADDRESS_STOP() 71 | { 72 | SetBit(Control_port,Control_port_CE); 73 | SetBit(Control_port,Control_port_OE); 74 | SetBit(Control_port,Control_port_WE); 75 | } 76 | 77 | unsigned int K5L_READ_WORD(unsigned long address) 78 | { 79 | unsigned int data = 0; 80 | K5L_SET_ADDRESS(address); 81 | data = (MByte_data_pin << 8); 82 | data |= data | LByte_data_pin; 83 | return data; 84 | } 85 | 86 | 87 | void K5L_READ_RANGE_FLASH(unsigned long bgn_add,unsigned long end_add) 88 | { 89 | unsigned int data = 0; 90 | K5L_READ_INIT(); 91 | K5L_READ_ADDRESS_START(); 92 | for(unsigned long read_counter = bgn_add; read_counter < end_add; read_counter++) 93 | { 94 | data = K5L_READ_WORD(read_counter); 95 | USART0_Transmit(Lo8(data)); 96 | USART0_Transmit(Hi8(data)); 97 | delay_us(50); // Need for hi-speed 98 | } 99 | K5L_READ_ADDRESS_STOP(); 100 | } 101 | 102 | 103 | //---------------------------Clear, Read and Write Flash-------------- 104 | void K5L_WRITE_INIT() 105 | { 106 | MByte_address_ddr = 0xFF; 107 | MLByte_address_ddr = 0xFF; 108 | LByte_address_ddr = 0xFF; 109 | Control_ddr = 0xFF; 110 | MByte_data_ddr = 0xFF; 111 | LByte_data_ddr = 0xFF; 112 | SetBit(Control_port,Control_port_WP); 113 | K5L_SET_ADDRESS(0xFFFFFFFF); 114 | K5L_SET_DATA(0xFFFF); 115 | } 116 | 117 | void K5L_RESET() 118 | { 119 | K5L_WRITE_INIT(); 120 | SetBit(Control_port,Control_port_OE); 121 | ClrBit(Control_port,Control_port_CE); 122 | ClrBit(Control_port,Control_port_WE); 123 | K5L_SET_DATA(0xF0); 124 | SetBit(Control_port,Control_port_WE); 125 | K5L_SET_ADDRESS(0x555); 126 | ClrBit(Control_port,Control_port_WE); 127 | K5L_SET_DATA(0xF0); 128 | SetBit(Control_port,Control_port_WE); 129 | SetBit(Control_port,Control_port_CE); 130 | } 131 | 132 | void K5L_ERASE_FLASH() 133 | { 134 | K5L_WRITE_INIT(); 135 | K5L_SET_ADDRESS(0x555); 136 | ClrBit(Control_port,Control_port_CE); 137 | SetBit(Control_port,Control_port_OE); 138 | ClrBit(Control_port,Control_port_WE); 139 | K5L_SET_DATA(0xAA); 140 | 141 | SetBit(Control_port,Control_port_CE); 142 | SetBit(Control_port,Control_port_WE); 143 | K5L_SET_ADDRESS(0x2AA); 144 | ClrBit(Control_port,Control_port_CE); 145 | ClrBit(Control_port,Control_port_WE); 146 | K5L_SET_DATA(0x55); 147 | 148 | SetBit(Control_port,Control_port_CE); 149 | SetBit(Control_port,Control_port_WE); 150 | K5L_SET_ADDRESS(0x555); 151 | ClrBit(Control_port,Control_port_CE); 152 | ClrBit(Control_port,Control_port_WE); 153 | K5L_SET_DATA(0x80); 154 | 155 | SetBit(Control_port,Control_port_CE); 156 | SetBit(Control_port,Control_port_WE); 157 | K5L_SET_ADDRESS(0x555); 158 | ClrBit(Control_port,Control_port_CE); 159 | ClrBit(Control_port,Control_port_WE); 160 | K5L_SET_DATA(0xAA); 161 | 162 | SetBit(Control_port,Control_port_CE); 163 | SetBit(Control_port,Control_port_WE); 164 | K5L_SET_ADDRESS(0x2AA); 165 | ClrBit(Control_port,Control_port_CE); 166 | ClrBit(Control_port,Control_port_WE); 167 | K5L_SET_DATA(0x55); 168 | 169 | SetBit(Control_port,Control_port_CE); 170 | SetBit(Control_port,Control_port_WE); 171 | K5L_SET_ADDRESS(0x555); 172 | ClrBit(Control_port,Control_port_CE); 173 | ClrBit(Control_port,Control_port_WE); 174 | K5L_SET_DATA(0x10); 175 | 176 | SetBit(Control_port,Control_port_WE); 177 | SetBit(Control_port,Control_port_CE); 178 | } 179 | 180 | void K5L_READ_FLASHID() 181 | { 182 | K5L_WRITE_INIT(); 183 | K5L_SET_ADDRESS(0x555); 184 | ClrBit(Control_port,Control_port_CE); 185 | SetBit(Control_port,Control_port_OE); 186 | ClrBit(Control_port,Control_port_WE); 187 | K5L_SET_DATA(0xAA); 188 | 189 | SetBit(Control_port,Control_port_CE); 190 | SetBit(Control_port,Control_port_WE); 191 | K5L_SET_ADDRESS(0x2AA); 192 | ClrBit(Control_port,Control_port_CE); 193 | ClrBit(Control_port,Control_port_WE); 194 | K5L_SET_DATA(0x55); 195 | 196 | SetBit(Control_port,Control_port_WE); 197 | K5L_SET_ADDRESS(0x555); 198 | ClrBit(Control_port,Control_port_WE); 199 | K5L_SET_DATA(0x90); 200 | SetBit(Control_port,Control_port_WE); 201 | 202 | K5L_READ_INIT(); 203 | K5L_READ_ADDRESS_START(); 204 | flashIDMessage[0] = Lo8(K5L_READ_WORD(0x00)); 205 | flashIDMessage[1] = Lo8(K5L_READ_WORD(0x01)); 206 | flashIDMessage[2] = Hi8(K5L_READ_WORD(0x01)); 207 | flashIDMessage[3] = Lo8(K5L_READ_WORD(0x0E)); 208 | flashIDMessage[4] = Hi8(K5L_READ_WORD(0x0E)); 209 | flashIDMessage[5] = Lo8(K5L_READ_WORD(0x0F)); 210 | flashIDMessage[6] = Hi8(K5L_READ_WORD(0x0F)); 211 | K5L_READ_ADDRESS_STOP(); 212 | } 213 | 214 | void K5L_WRITE_WORD(unsigned long address, unsigned int data) 215 | { 216 | K5L_WRITE_INIT(); 217 | 218 | SetBit(Control_port,Control_port_CE); 219 | ClrBit(Control_port,Control_port_OE); 220 | SetBit(Control_port,Control_port_WE); 221 | 222 | K5L_SET_ADDRESS(0x555); 223 | K5L_SET_DATA(0xAA); 224 | ClrBit(Control_port,Control_port_CE); 225 | SetBit(Control_port,Control_port_OE); 226 | ClrBit(Control_port,Control_port_WE); 227 | 228 | SetBit(Control_port,Control_port_CE); 229 | SetBit(Control_port,Control_port_WE); 230 | K5L_SET_ADDRESS(0x2AA); 231 | K5L_SET_DATA(0x55); 232 | 233 | ClrBit(Control_port,Control_port_CE); 234 | ClrBit(Control_port,Control_port_WE); 235 | SetBit(Control_port,Control_port_WE); 236 | K5L_SET_ADDRESS(0x555); 237 | K5L_SET_DATA(0xA0); 238 | 239 | ClrBit(Control_port,Control_port_WE); 240 | SetBit(Control_port,Control_port_WE); 241 | K5L_SET_ADDRESS(address); 242 | K5L_SET_DATA(data); 243 | ClrBit(Control_port,Control_port_WE); 244 | SetBit(Control_port,Control_port_WE); 245 | } 246 | 247 | void K5L_UNLOCK_ERASE() 248 | { 249 | K5L_WRITE_INIT(); 250 | SetBit(Control_port,Control_port_OE); 251 | ClrBit(Control_port,Control_port_CE); 252 | ClrBit(Control_port,Control_port_WE); 253 | K5L_SET_DATA(0x80); 254 | SetBit(Control_port,Control_port_WE); 255 | K5L_SET_ADDRESS(0x555); 256 | ClrBit(Control_port,Control_port_WE); 257 | K5L_SET_DATA(0x10); 258 | SetBit(Control_port,Control_port_WE); 259 | SetBit(Control_port,Control_port_CE); 260 | } 261 | 262 | -------------------------------------------------------------------------------- /Firmware_IAR/Compiled_HEX/Programmator_1000000_2048_16Mhz.hex: -------------------------------------------------------------------------------- 1 | :100000000C947500189518951895189518951895CD 2 | :100010001895189518951895189518951895189578 3 | :100020001895189518951895189518951895189568 4 | :100030001895189518951895189518951895189558 5 | :100040001895189518951895189518951895189548 6 | :10005000189518950C9436021895189518951895BA 7 | :10006000189518950C94AD01189518951895189534 8 | :100070001895189518951895189518951895189518 9 | :100080001895189518951895189518951895189508 10 | :1000900018951895189518951895189518951895F8 11 | :1000A00018951895189518951895189518951895E8 12 | :1000B00018951895189518951895189518951895D8 13 | :1000C00018951895189518951895189518951895C8 14 | :1000D00018951895189518951895189518951895B8 15 | :1000E0001895189500008895FECF0FE20DBF02E12C 16 | :1000F0000EBFC0E0D2E10E949407002311F00E94DD 17 | :10010000A6070E9490070E9472000C947200FA9257 18 | :10011000EA92DA92CA92BA92AA929A928A927A92BF 19 | :100120006A925A924A92BA93AA939A938A9308959A 20 | :10013000FF84EE84DD84CC84BB84AA849984888483 21 | :100140007F806E805D804C80BB81AA81998188818F 22 | :10015000F0E0EC0FFD1FEF010895502F212F40E03C 23 | :100160008A0130E0B801622B732B062B172B089500 24 | :100170000E949300E02FF12FA22FB32F80E090E098 25 | :1001800000241124222433241B2F0A2FE6DFC80168 26 | :100190001F2F0E2FE2DF20E030E0312F202F10E064 27 | :1001A00000E0080119018C0120E030E0000D111D74 28 | :1001B000221D331DE4E00C94A4007894089500916E 29 | :1001C0000101086100930101009102010F7E00937B 30 | :1001D000020100910201077F00930201089500913E 31 | :1001E00002010061009302010895009102010F7E57 32 | :1001F000009302010895009102010860009302013A 33 | :10020000089500910201077F00930201089504B14F 34 | :1002100004B92E9A2D9A2C9A089500E00093671243 35 | :100220001E9910C00FEF16E721E00150104020404A 36 | :10023000E1F700C000001E9905C0E7E6F2E1008189 37 | :10024000016000831D9910C00FEF16E721E00150F7 38 | :1002500010402040E1F700C000001D9905C0E7E60E 39 | :10026000F2E10081026000831C9910C00FEF16E7D5 40 | :1002700021E0015010402040E1F700C000001C992F 41 | :1002800005C0E7E6F2E10081046000830895192FBC 42 | :10029000282F80E090E08F3008E0900738F4FC01D0 43 | :1002A000E859FD4E00E000830196F5CF822F912F93 44 | :1002B000089500E00093C50001E00093C4000091A0 45 | :1002C000C00002600093C0000091C1000869009363 46 | :1002D000C1000091C20006600093C200EAE7FAE1A3 47 | :1002E000008101600083D3DF08951091C000212FA9 48 | :1002F00025FFFBCF0093C60008950091C100006860 49 | :100300000093C100EAE7FAE10081016000830895EB 50 | :100310000091C1000F770093C100EAE7FAE1008184 51 | :100320000E7F00830895F80100813196302F00235D 52 | :1003300019F0032FDADFF8CF089500E312E1F3DFBD 53 | :10034000089506E312E1EFDF08950DE312E1EBDF1C 54 | :10035000089507E412E1E7DF0895FA93EA936A93B8 55 | :100360005A934A933A932A931A930A934FB75BB7D7 56 | :100370006CB70091C6002091781A3091791AF90172 57 | :10038000E859FD4E0083E8E7FAE1008111810F5F33 58 | :100390001F4F008311830091781A1091791A003150 59 | :1003A00028E01207B1F400E00093781A00E000930F 60 | :1003B000791AAEDFEAE7FAE100810E7F0083EAE70F 61 | :1003C000FAE1008100610083EAE7FAE10081086058 62 | :1003D000008300E000937D1AEAE7FAE10081026001 63 | :1003E00000836CBF5BBF4FBF09911991299139916F 64 | :1003F000499159916991E991F99118950DE707BDD6 65 | :1004000005B5036005BD00916E00026000936E00AB 66 | :100410000895EAE7FAE1008101FF27C000917D1A03 67 | :10042000039500937D1A00917D1A0230F0F070DF81 68 | :10043000EAE7FAE100810E7F0083EAE7FAE1008152 69 | :100440000D7F0083EAE7FAE1008104600083EAE7B8 70 | :10045000FAE100810860008300E000937D1AE8E77C 71 | :10046000FAE100E0008300E001830895FA93EA9343 72 | :100470004A933A932A931A930A932FB73BB74CB7F0 73 | :10048000C8DFEBE7FAE1008111810F5F1F4F0083A6 74 | :1004900011834CBF3BBF2FBF09911991299139910D 75 | :1004A0004991E991F991189500910001102F11FFE0 76 | :1004B00002C001E0089500E00895002331F4109196 77 | :1004C00001011D7F1093010105C01091010112600F 78 | :1004D0001093010100C000C00895002359F010914D 79 | :1004E00001011E7F10930101109102011E7F1093E4 80 | :1004F00002010AC0109101011160109301011091D5 81 | :1005000002011E7F1093020100C000C00895002365 82 | :1005100059F0109101011D7F10930101109102010A 83 | :100520001D7F109302010AC0109101011260109307 84 | :100530000101109102011D7F1093020100C000C053 85 | :100540000895009101010D7F0093010100910101C7 86 | :100550000E7F00930101009102010D7F00930201C3 87 | :10056000009102010E7F0093020100E000937E1AC9 88 | :10057000089500917E1A002331F401E0AEDF00E01F 89 | :10058000C6DF00E0AADF089500E0C1DF01E0A5DFDB 90 | :1005900001E0BDDF00917E1A002309F0D2DF08954B 91 | :1005A000302F00917E1A0023E1F420E0283070F40F 92 | :1005B00037FB1EF401E0ABDF02C000E0A8DF01E082 93 | :1005C0008CDF00E08ADF330F2395F0CF00E075DF8A 94 | :1005D00001E083DF69DF00937E1A00E07EDF01E047 95 | :1005E0006CDF0895402FC5DF08E7DADF00E0D8DFD1 96 | :1005F000042FD6DFC9DF0895402FBBDF08E7D0DF27 97 | :1006000000E4CEDF042FCCDFBFDF08950EEAEADF7F 98 | :1006100005EDE8DF00E8E6DF08EAE4DF0FE1E2DF0E 99 | :1006200003EDE0DF00E0DEDF00E4DCDF0DE8DADF31 100 | :1006300004E1D8DF00E2D6DF00E0D4DF01EAD2DF58 101 | :1006400008ECD0DF0AEDCEDF02E0CCDF01E8CADF44 102 | :100650000FE8C8DF09EDC6DF01EFC4DF0BEDC2DF35 103 | :1006600000E4C0DF04EABEDF06EABCDF0FEABADF5F 104 | :10067000089501E2B7DF00E0B5DF0FE7B3DF02E284 105 | :10068000B1DF00E0AFDF04E0ADDFE0E0F0E0E0305C 106 | :1006900002E0F00724F400E0AFDF3196F8CF0895D0 107 | :1006A000A80142B9A801452F50E048B9A801B901F5 108 | :1006B000462F572F60E070E040930B01089598019A 109 | :1006C000232F30E020930801202F21BB08950FEF46 110 | :1006D00000930A010FEF07B90FEF01B90FEF0AB945 111 | :1006E00000E00093070100E000BB5B9A00E010E02F 112 | :1006F00020E030E0D5DF00E010E0E1DF0895589819 113 | :1007000059985A9A0895589A599A5A9A08950801E8 114 | :100710001901E0E0F0E080019101C2DF10910601D3 115 | :1007200000E0F8010FB110E09F01202B312BE22BEC 116 | :10073000F32B8F0108950E948700680179014A0117 117 | :100740005B0144245524C3DFDADFC601D7018815D5 118 | :100750009905AA05BB0598F48C019D01D8DF2801F5 119 | :10076000042DC3DD8201012F10E0BFDD08EC000085 120 | :100770000A95E9F78F5F9F4FAF4FBF4FE8CFC3DFB9 121 | :10078000E0E10C9498000FEF00930A010FEF07B916 122 | :100790000FEF01B90FEF0AB90FEF009307010FEF49 123 | :1007A00000BB5B9A0FEF1FEF2FEF3FEF79DF0FEFEB 124 | :1007B0001FEF85DF0895E7DF599A58985A9800EFA0 125 | :1007C00010E07DDF5A9A05E515E020E030E068DFB3 126 | :1007D0005A9800EF10E073DF5A9A589A0895D3DFC1 127 | :1007E00005E515E020E030E05BDF5898599A5A980B 128 | :1007F0000AEA10E064DF589A5A9A0AEA12E020E006 129 | :1008000030E04EDF58985A9805E510E058DF589AC6 130 | :100810005A9A05E515E020E030E042DF58985A98F2 131 | :1008200000E810E04CDF589A5A9A05E515E020E000 132 | :1008300030E036DF58985A980AEA10E040DF589ABC 133 | :100840005A9A0AEA12E020E030E02ADF58985A98D3 134 | :1008500005E510E034DF589A5A9A05E515E020E0E6 135 | :1008600030E01EDF58985A9800E110E028DF5A9ACD 136 | :10087000589A089588DF05E515E020E030E010DFA4 137 | :100880005898599A5A980AEA10E019DF589A5A9AD1 138 | :100890000AEA12E020E030E003DF58985A9805E5B4 139 | :1008A00010E00DDF5A9A05E515E020E030E0F8DEB3 140 | :1008B0005A9800E910E003DF5A9A09DF20DF00E0D0 141 | :1008C00010E020E030E023DF00937F1A01E010E029 142 | :1008D00020E030E01CDF0093801A01E010E020E00F 143 | :1008E00030E015DF012F10E00093811A0EE010E0D8 144 | :1008F00020E030E00CDF0093821A0EE010E020E0F0 145 | :1009000030E005DF012F10E00093831A0FE010E0C4 146 | :1009100020E030E0FCDE0093841A0FE010E020E0DD 147 | :1009200030E0F5DE012F10E00093851AECDE08952B 148 | :1009300008011901FA0127DF589A59985A9A05E5D2 149 | :1009400015E020E030E0ACDE0AEA10E0B8DE5898AE 150 | :10095000599A5A98589A5A9A0AEA12E020E030E0D6 151 | :100960009FDE05E510E0ABDE58985A985A9A05E5E7 152 | :1009700015E020E030E094DE00EA10E0A0DE5A98B6 153 | :100980005A9A800191018CDE8F0199DE5A985A9A09 154 | :100990000895F9DE599A58985A9800E810E08FDEC9 155 | :1009A0005A9A05E515E020E030E07ADE5A9800E139 156 | :1009B00010E085DE5A9A589A08951DDCFCDE87DE29 157 | :1009C00020DCBBDC089517DC55DFF5DE40E0473066 158 | :1009D00040F450E0FA01E158F54E008186DC439581 159 | :1009E000F6CF0FDC0FE412E19EDC089504DCF7DBA8 160 | :1009F000D0DFF5DEAEDC6BDE82DE00E010E020E072 161 | :100A000030E085DE0C3420E0120741F000E010E019 162 | :100A100020E030E07CDE0830104041F40FE31CE9B8 163 | :100A200001501040E9F700C00000E7CF00E010E0FF 164 | :100A300020E030E06CDE0F3F1F4F11F082DC01C080 165 | :100A40007CDC61DEDEDBD1DB08950E9487002D9720 166 | :100A5000280100E00A8300E00B8300E00B8700E040 167 | :100A60000C87A0E0B0E080E090E000E00F8300E0C1 168 | :100A7000088700E0098700E00A876624772400E001 169 | :100A80000D8300E00E8300E0098300E00C8300E0AA 170 | :100A90000883CC24DD24A9DBB4DBF2011581F2014B 171 | :100AA00004815BDB0A831B830A811B81093028E0F8 172 | :100AB000120718F046DC01E02EC1F2013185F20187 173 | :100AC0002085F2011781F201068152DB0F8318871E 174 | :100AD00029873A8720E030E00A811B8120173107FF 175 | :100AE000D0F4F201E20FF31F028510E0A027B12736 176 | :100AF00000E0083068F4A0FB3EF4B695A79511E03D 177 | :100B0000A12710EAB12702C0B695A7950395F1CFAA 178 | :100B10002F5F3F4FE1CF0A811B81F201E00FF11FF0 179 | :100B200013852A813B81F201E20FF31F028515DB59 180 | :100B30000B871C870B851C85A017B10719F005DCF6 181 | :100B400001E0E9C04CDB0A8100FF47C088249924FA 182 | :100B50000A811B818016910678F50881002349F4EB 183 | :100B6000F201E80DF91D02850983088103950883C8 184 | :100B70001EC0F201E80DF91D02850C8319810C815C 185 | :100B8000ECDA3801A3010A010F81188529853A851D 186 | :100B9000A60160E070E0040F151F261F371FA0019B 187 | :100BA000C7DE00E0088301E0C00E00E0D01E01E0D7 188 | :100BB000800E00E0901ECCCF19810FEFCEDA380105 189 | :100BC000A3010F81188529853A85EE24FF240C0D99 190 | :100BD0001D1D2E1D3F1DACDE2AC0882499240A81CC 191 | :100BE0001B81169507958016910608F58401000F64 192 | :100BF000111FF201E00FF11F12859401220F331F24 193 | :100C0000F201E20FF31F0385A8DA3801A3010F8177 194 | :100C1000188529853A85AA24BB24080D191D2A1D8B 195 | :100C20003B1D86DE01E0800E00E0901ED8CFDDDAAD 196 | :100C3000E2DA4DDD64DD00E0098300E00C8300E0D2 197 | :100C40000883CC24DD240F81188529853A855FDD52 198 | :100C50000D831E83882499240A811B8180169106A6 199 | :100C600008F04CC008810023D1F40D811E810F7F54 200 | :100C700010708027912700E0083068F480FB3EF474 201 | :100C80009695879511E0812710EA912702C09695E5 202 | :100C900087950395F1CF0881039508832AC00D81BC 203 | :100CA0001E81012F10E08027912700E0083068F4B2 204 | :100CB00080FB3EF49695879511E0812710EA9127F5 205 | :100CC00002C0969587950395F1CF00E0088301E077 206 | :100CD000C00E00E0D01E860120E030E04F81588534 207 | :100CE00069857A85040F151F261F371F10DD0D83B8 208 | :100CF0001E8301E0800E00E0901EAECF04DD0E9456 209 | :100D000001018A179B0729F002E512E10CDB01E0E3 210 | :100D100002C013DB00E02D96E0E10C9498000E94E5 211 | :100D20008B00D80188249924AA24BB244424552468 212 | :100D300066247724FD013781FD012681FD0115819F 213 | :100D4000FD0104810E94B80048015901FD0133856D 214 | :100D5000FD012285FD011185FD0100850E94B8007D 215 | :100D600028013901EADA0FEF13ED20E301501040BA 216 | :100D70002040E1F700C000000E94FB00A201B30187 217 | :100D800084019501D8DC0E940101ECE00C949C00E8 218 | :100D90000E94910028010E94FB0080E090E0A0E00A 219 | :100DA000B0E0F2013781F2012681F2011581F201F2 220 | :100DB00004810E94B800C801D901AC01BD014F5F98 221 | :100DC0005F4F6F4F7F4F8C019D01B5DC0E94010189 222 | :100DD000E6E00C94A2000E9447010E947D0101E020 223 | :100DE00000937A1A0895BA93AA93D8010C91043209 224 | :100DF00019F0A7DAF0DF71C0FD010181013459F467 225 | :100E0000FD010281053539F4FD010381043519F432 226 | :100E100094DAE1DF62C0FD0101810D3459F4FD0176 227 | :100E20000281023539F4FD010381043519F4CBDD6B 228 | :100E3000D2DF53C0FD010181053459F4FD01028167 229 | :100E4000023539F4FD010381033519F4CFDDC3DF29 230 | :100E500044C0FD010181073561F4FD0102810235C5 231 | :100E600041F4FD010381023421F48D01EEDDB3DF95 232 | :100E700034C0FD010181023561F4FD0102810434B9 233 | :100E800041F4FD010381023521F48D0148DFA3DF28 234 | :100E900024C0FD010181023559F4FD0102810335B1 235 | :100EA00039F4FD010381043519F487DD94DF15C0A1 236 | :100EB000FD010181023561F4FD010281043441F438 237 | :100EC000FD010381013421F48D0162DF84DF05C05F 238 | :100ED0000FE512E10E9493017EDFA991B991089577 239 | :100EE0000E94DD000E94DF000E9407010E94FE01B7 240 | :100EF0000E9459018BDBBDDB089508950E940D010E 241 | :100F0000EAE7FAE1008103FF03C008E612E16BDFC4 242 | :100F1000E7E6F2E1008101FFF1CF68DD5CDFEECFB3 243 | :100F2000DFDFEBDFEBDF089501E0089520E02D9394 244 | :100F300001501040E1F708953BBF26912D93EF5FDC 245 | :100F4000FF4F3F4F01501040B9F7089542EA5FE06C 246 | :100F500060E0FA01362F3BBF07911691FA01EE5F70 247 | :100F6000FF4F3F4F3BBFA791B691FA01362FEC5F81 248 | :100F7000FF4F3F4F3BBF079017902690202D212910 249 | :100F8000222921F0F001322DD7DF01C0CFDF495FE8 250 | :100F90005F4F6F4F1FE020E0403B51076207C8F2F0 251 | :100FA000089537003012B00F001F086712000000CC 252 | :100FB000244F4B0D0A00244552520D0A002443527F 253 | :100FC000434552520D0A0024574149540D0A000D61 254 | :100FD0000A00245752544352434552520D0A0024EA 255 | :070FE0004E4F444154410053 256 | :0000EA0115 257 | :00000001FF 258 | -------------------------------------------------------------------------------- /Firmware_IAR/Compiled_HEX/Programmator_115200_2048_16Mhz.hex: -------------------------------------------------------------------------------- 1 | :100000000C947500189518951895189518951895CD 2 | :100010001895189518951895189518951895189578 3 | :100020001895189518951895189518951895189568 4 | :100030001895189518951895189518951895189558 5 | :100040001895189518951895189518951895189548 6 | :10005000189518950C9436021895189518951895BA 7 | :10006000189518950C94AD01189518951895189534 8 | :100070001895189518951895189518951895189518 9 | :100080001895189518951895189518951895189508 10 | :1000900018951895189518951895189518951895F8 11 | :1000A00018951895189518951895189518951895E8 12 | :1000B00018951895189518951895189518951895D8 13 | :1000C00018951895189518951895189518951895C8 14 | :1000D00018951895189518951895189518951895B8 15 | :1000E0001895189500008895FECF0FE20DBF02E12C 16 | :1000F0000EBFC0E0D2E10E949407002311F00E94DD 17 | :10010000A6070E9490070E9472000C947200FA9257 18 | :10011000EA92DA92CA92BA92AA929A928A927A92BF 19 | :100120006A925A924A92BA93AA939A938A9308959A 20 | :10013000FF84EE84DD84CC84BB84AA849984888483 21 | :100140007F806E805D804C80BB81AA81998188818F 22 | :10015000F0E0EC0FFD1FEF010895502F212F40E03C 23 | :100160008A0130E0B801622B732B062B172B089500 24 | :100170000E949300E02FF12FA22FB32F80E090E098 25 | :1001800000241124222433241B2F0A2FE6DFC80168 26 | :100190001F2F0E2FE2DF20E030E0312F202F10E064 27 | :1001A00000E0080119018C0120E030E0000D111D74 28 | :1001B000221D331DE4E00C94A4007894089500916E 29 | :1001C0000101086100930101009102010F7E00937B 30 | :1001D000020100910201077F00930201089500913E 31 | :1001E00002010061009302010895009102010F7E57 32 | :1001F000009302010895009102010860009302013A 33 | :10020000089500910201077F00930201089504B14F 34 | :1002100004B92E9A2D9A2C9A089500E00093671243 35 | :100220001E9910C00FEF16E721E00150104020404A 36 | :10023000E1F700C000001E9905C0E7E6F2E1008189 37 | :10024000016000831D9910C00FEF16E721E00150F7 38 | :1002500010402040E1F700C000001D9905C0E7E60E 39 | :10026000F2E10081026000831C9910C00FEF16E7D5 40 | :1002700021E0015010402040E1F700C000001C992F 41 | :1002800005C0E7E6F2E10081046000830895192FBC 42 | :10029000282F80E090E08F3008E0900738F4FC01D0 43 | :1002A000E859FD4E00E000830196F5CF822F912F93 44 | :1002B000089500E00093C50000E10093C4000091A0 45 | :1002C000C00002600093C0000091C1000869009363 46 | :1002D000C1000091C20006600093C200EAE7FAE1A3 47 | :1002E000008101600083D3DF08951091C000212FA9 48 | :1002F00025FFFBCF0093C60008950091C100006860 49 | :100300000093C100EAE7FAE10081016000830895EB 50 | :100310000091C1000F770093C100EAE7FAE1008184 51 | :100320000E7F00830895F80100813196302F00235D 52 | :1003300019F0032FDADFF8CF089500E312E1F3DFBD 53 | :10034000089506E312E1EFDF08950DE312E1EBDF1C 54 | :10035000089507E412E1E7DF0895FA93EA936A93B8 55 | :100360005A934A933A932A931A930A934FB75BB7D7 56 | :100370006CB70091C6002091781A3091791AF90172 57 | :10038000E859FD4E0083E8E7FAE1008111810F5F33 58 | :100390001F4F008311830091781A1091791A003150 59 | :1003A00028E01207B1F400E00093781A00E000930F 60 | :1003B000791AAEDFEAE7FAE100810E7F0083EAE70F 61 | :1003C000FAE1008100610083EAE7FAE10081086058 62 | :1003D000008300E000937D1AEAE7FAE10081026001 63 | :1003E00000836CBF5BBF4FBF09911991299139916F 64 | :1003F000499159916991E991F99118950DE707BDD6 65 | :1004000005B5036005BD00916E00026000936E00AB 66 | :100410000895EAE7FAE1008101FF27C000917D1A03 67 | :10042000039500937D1A00917D1A0230F0F070DF81 68 | :10043000EAE7FAE100810E7F0083EAE7FAE1008152 69 | :100440000D7F0083EAE7FAE1008104600083EAE7B8 70 | :10045000FAE100810860008300E000937D1AE8E77C 71 | :10046000FAE100E0008300E001830895FA93EA9343 72 | :100470004A933A932A931A930A932FB73BB74CB7F0 73 | :10048000C8DFEBE7FAE1008111810F5F1F4F0083A6 74 | :1004900011834CBF3BBF2FBF09911991299139910D 75 | :1004A0004991E991F991189500910001102F11FFE0 76 | :1004B00002C001E0089500E00895002331F4109196 77 | :1004C00001011D7F1093010105C01091010112600F 78 | :1004D0001093010100C000C00895002359F010914D 79 | :1004E00001011E7F10930101109102011E7F1093E4 80 | :1004F00002010AC0109101011160109301011091D5 81 | :1005000002011E7F1093020100C000C00895002365 82 | :1005100059F0109101011D7F10930101109102010A 83 | :100520001D7F109302010AC0109101011260109307 84 | :100530000101109102011D7F1093020100C000C053 85 | :100540000895009101010D7F0093010100910101C7 86 | :100550000E7F00930101009102010D7F00930201C3 87 | :10056000009102010E7F0093020100E000937E1AC9 88 | :10057000089500917E1A002331F401E0AEDF00E01F 89 | :10058000C6DF00E0AADF089500E0C1DF01E0A5DFDB 90 | :1005900001E0BDDF00917E1A002309F0D2DF08954B 91 | :1005A000302F00917E1A0023E1F420E0283070F40F 92 | :1005B00037FB1EF401E0ABDF02C000E0A8DF01E082 93 | :1005C0008CDF00E08ADF330F2395F0CF00E075DF8A 94 | :1005D00001E083DF69DF00937E1A00E07EDF01E047 95 | :1005E0006CDF0895402FC5DF08E7DADF00E0D8DFD1 96 | :1005F000042FD6DFC9DF0895402FBBDF08E7D0DF27 97 | :1006000000E4CEDF042FCCDFBFDF08950EEAEADF7F 98 | :1006100005EDE8DF00E8E6DF08EAE4DF0FE1E2DF0E 99 | :1006200003EDE0DF00E0DEDF00E4DCDF0DE8DADF31 100 | :1006300004E1D8DF00E2D6DF00E0D4DF01EAD2DF58 101 | :1006400008ECD0DF0AEDCEDF02E0CCDF01E8CADF44 102 | :100650000FE8C8DF09EDC6DF01EFC4DF0BEDC2DF35 103 | :1006600000E4C0DF04EABEDF06EABCDF0FEABADF5F 104 | :10067000089501E2B7DF00E0B5DF0FE7B3DF02E284 105 | :10068000B1DF00E0AFDF04E0ADDFE0E0F0E0E0305C 106 | :1006900002E0F00724F400E0AFDF3196F8CF0895D0 107 | :1006A000A80142B9A801452F50E048B9A801B901F5 108 | :1006B000462F572F60E070E040930B01089598019A 109 | :1006C000232F30E020930801202F21BB08950FEF46 110 | :1006D00000930A010FEF07B90FEF01B90FEF0AB945 111 | :1006E00000E00093070100E000BB5B9A00E010E02F 112 | :1006F00020E030E0D5DF00E010E0E1DF0895589819 113 | :1007000059985A9A0895589A599A5A9A08950801E8 114 | :100710001901E0E0F0E080019101C2DF10910601D3 115 | :1007200000E0F8010FB110E09F01202B312BE22BEC 116 | :10073000F32B8F0108950E948700680179014A0117 117 | :100740005B0144245524C3DFDADFC601D7018815D5 118 | :100750009905AA05BB0598F48C019D01D8DF2801F5 119 | :10076000042DC3DD8201012F10E0BFDD08EC000085 120 | :100770000A95E9F78F5F9F4FAF4FBF4FE8CFC3DFB9 121 | :10078000E0E10C9498000FEF00930A010FEF07B916 122 | :100790000FEF01B90FEF0AB90FEF009307010FEF49 123 | :1007A00000BB5B9A0FEF1FEF2FEF3FEF79DF0FEFEB 124 | :1007B0001FEF85DF0895E7DF599A58985A9800EFA0 125 | :1007C00010E07DDF5A9A05E515E020E030E068DFB3 126 | :1007D0005A9800EF10E073DF5A9A589A0895D3DFC1 127 | :1007E00005E515E020E030E05BDF5898599A5A980B 128 | :1007F0000AEA10E064DF589A5A9A0AEA12E020E006 129 | :1008000030E04EDF58985A9805E510E058DF589AC6 130 | :100810005A9A05E515E020E030E042DF58985A98F2 131 | :1008200000E810E04CDF589A5A9A05E515E020E000 132 | :1008300030E036DF58985A980AEA10E040DF589ABC 133 | :100840005A9A0AEA12E020E030E02ADF58985A98D3 134 | :1008500005E510E034DF589A5A9A05E515E020E0E6 135 | :1008600030E01EDF58985A9800E110E028DF5A9ACD 136 | :10087000589A089588DF05E515E020E030E010DFA4 137 | :100880005898599A5A980AEA10E019DF589A5A9AD1 138 | :100890000AEA12E020E030E003DF58985A9805E5B4 139 | :1008A00010E00DDF5A9A05E515E020E030E0F8DEB3 140 | :1008B0005A9800E910E003DF5A9A09DF20DF00E0D0 141 | :1008C00010E020E030E023DF00937F1A01E010E029 142 | :1008D00020E030E01CDF0093801A01E010E020E00F 143 | :1008E00030E015DF012F10E00093811A0EE010E0D8 144 | :1008F00020E030E00CDF0093821A0EE010E020E0F0 145 | :1009000030E005DF012F10E00093831A0FE010E0C4 146 | :1009100020E030E0FCDE0093841A0FE010E020E0DD 147 | :1009200030E0F5DE012F10E00093851AECDE08952B 148 | :1009300008011901FA0127DF589A59985A9A05E5D2 149 | :1009400015E020E030E0ACDE0AEA10E0B8DE5898AE 150 | :10095000599A5A98589A5A9A0AEA12E020E030E0D6 151 | :100960009FDE05E510E0ABDE58985A985A9A05E5E7 152 | :1009700015E020E030E094DE00EA10E0A0DE5A98B6 153 | :100980005A9A800191018CDE8F0199DE5A985A9A09 154 | :100990000895F9DE599A58985A9800E810E08FDEC9 155 | :1009A0005A9A05E515E020E030E07ADE5A9800E139 156 | :1009B00010E085DE5A9A589A08951DDCFCDE87DE29 157 | :1009C00020DCBBDC089517DC55DFF5DE40E0473066 158 | :1009D00040F450E0FA01E158F54E008186DC439581 159 | :1009E000F6CF0FDC0FE412E19EDC089504DCF7DBA8 160 | :1009F000D0DFF5DEAEDC6BDE82DE00E010E020E072 161 | :100A000030E085DE0C3420E0120741F000E010E019 162 | :100A100020E030E07CDE0830104041F40FE31CE9B8 163 | :100A200001501040E9F700C00000E7CF00E010E0FF 164 | :100A300020E030E06CDE0F3F1F4F11F082DC01C080 165 | :100A40007CDC61DEDEDBD1DB08950E9487002D9720 166 | :100A5000280100E00A8300E00B8300E00B8700E040 167 | :100A60000C87A0E0B0E080E090E000E00F8300E0C1 168 | :100A7000088700E0098700E00A876624772400E001 169 | :100A80000D8300E00E8300E0098300E00C8300E0AA 170 | :100A90000883CC24DD24A9DBB4DBF2011581F2014B 171 | :100AA00004815BDB0A831B830A811B81093028E0F8 172 | :100AB000120718F046DC01E02EC1F2013185F20187 173 | :100AC0002085F2011781F201068152DB0F8318871E 174 | :100AD00029873A8720E030E00A811B8120173107FF 175 | :100AE000D0F4F201E20FF31F028510E0A027B12736 176 | :100AF00000E0083068F4A0FB3EF4B695A79511E03D 177 | :100B0000A12710EAB12702C0B695A7950395F1CFAA 178 | :100B10002F5F3F4FE1CF0A811B81F201E00FF11FF0 179 | :100B200013852A813B81F201E20FF31F028515DB59 180 | :100B30000B871C870B851C85A017B10719F005DCF6 181 | :100B400001E0E9C04CDB0A8100FF47C088249924FA 182 | :100B50000A811B818016910678F50881002349F4EB 183 | :100B6000F201E80DF91D02850983088103950883C8 184 | :100B70001EC0F201E80DF91D02850C8319810C815C 185 | :100B8000ECDA3801A3010A010F81188529853A851D 186 | :100B9000A60160E070E0040F151F261F371FA0019B 187 | :100BA000C7DE00E0088301E0C00E00E0D01E01E0D7 188 | :100BB000800E00E0901ECCCF19810FEFCEDA380105 189 | :100BC000A3010F81188529853A85EE24FF240C0D99 190 | :100BD0001D1D2E1D3F1DACDE2AC0882499240A81CC 191 | :100BE0001B81169507958016910608F58401000F64 192 | :100BF000111FF201E00FF11F12859401220F331F24 193 | :100C0000F201E20FF31F0385A8DA3801A3010F8177 194 | :100C1000188529853A85AA24BB24080D191D2A1D8B 195 | :100C20003B1D86DE01E0800E00E0901ED8CFDDDAAD 196 | :100C3000E2DA4DDD64DD00E0098300E00C8300E0D2 197 | :100C40000883CC24DD240F81188529853A855FDD52 198 | :100C50000D831E83882499240A811B8180169106A6 199 | :100C600008F04CC008810023D1F40D811E810F7F54 200 | :100C700010708027912700E0083068F480FB3EF474 201 | :100C80009695879511E0812710EA912702C09695E5 202 | :100C900087950395F1CF0881039508832AC00D81BC 203 | :100CA0001E81012F10E08027912700E0083068F4B2 204 | :100CB00080FB3EF49695879511E0812710EA9127F5 205 | :100CC00002C0969587950395F1CF00E0088301E077 206 | :100CD000C00E00E0D01E860120E030E04F81588534 207 | :100CE00069857A85040F151F261F371F10DD0D83B8 208 | :100CF0001E8301E0800E00E0901EAECF04DD0E9456 209 | :100D000001018A179B0729F002E512E10CDB01E0E3 210 | :100D100002C013DB00E02D96E0E10C9498000E94E5 211 | :100D20008B00D80188249924AA24BB244424552468 212 | :100D300066247724FD013781FD012681FD0115819F 213 | :100D4000FD0104810E94B80048015901FD0133856D 214 | :100D5000FD012285FD011185FD0100850E94B8007D 215 | :100D600028013901EADA0FEF13ED20E301501040BA 216 | :100D70002040E1F700C000000E94FB00A201B30187 217 | :100D800084019501D8DC0E940101ECE00C949C00E8 218 | :100D90000E94910028010E94FB0080E090E0A0E00A 219 | :100DA000B0E0F2013781F2012681F2011581F201F2 220 | :100DB00004810E94B800C801D901AC01BD014F5F98 221 | :100DC0005F4F6F4F7F4F8C019D01B5DC0E94010189 222 | :100DD000E6E00C94A2000E9447010E947D0101E020 223 | :100DE00000937A1A0895BA93AA93D8010C91043209 224 | :100DF00019F0A7DAF0DF71C0FD010181013459F467 225 | :100E0000FD010281053539F4FD010381043519F432 226 | :100E100094DAE1DF62C0FD0101810D3459F4FD0176 227 | :100E20000281023539F4FD010381043519F4CBDD6B 228 | :100E3000D2DF53C0FD010181053459F4FD01028167 229 | :100E4000023539F4FD010381033519F4CFDDC3DF29 230 | :100E500044C0FD010181073561F4FD0102810235C5 231 | :100E600041F4FD010381023421F48D01EEDDB3DF95 232 | :100E700034C0FD010181023561F4FD0102810434B9 233 | :100E800041F4FD010381023521F48D0148DFA3DF28 234 | :100E900024C0FD010181023559F4FD0102810335B1 235 | :100EA00039F4FD010381043519F487DD94DF15C0A1 236 | :100EB000FD010181023561F4FD010281043441F438 237 | :100EC000FD010381013421F48D0162DF84DF05C05F 238 | :100ED0000FE512E10E9493017EDFA991B991089577 239 | :100EE0000E94DD000E94DF000E9407010E94FE01B7 240 | :100EF0000E9459018BDBBDDB089508950E940D010E 241 | :100F0000EAE7FAE1008103FF03C008E612E16BDFC4 242 | :100F1000E7E6F2E1008101FFF1CF68DD5CDFEECFB3 243 | :100F2000DFDFEBDFEBDF089501E0089520E02D9394 244 | :100F300001501040E1F708953BBF26912D93EF5FDC 245 | :100F4000FF4F3F4F01501040B9F7089542EA5FE06C 246 | :100F500060E0FA01362F3BBF07911691FA01EE5F70 247 | :100F6000FF4F3F4F3BBFA791B691FA01362FEC5F81 248 | :100F7000FF4F3F4F3BBF079017902690202D212910 249 | :100F8000222921F0F001322DD7DF01C0CFDF495FE8 250 | :100F90005F4F6F4F1FE020E0403B51076207C8F2F0 251 | :100FA000089537003012B00F001F086712000000CC 252 | :100FB000244F4B0D0A00244552520D0A002443527F 253 | :100FC000434552520D0A0024574149540D0A000D61 254 | :100FD0000A00245752544352434552520D0A0024EA 255 | :070FE0004E4F444154410053 256 | :0000EA0115 257 | :00000001FF 258 | -------------------------------------------------------------------------------- /Firmware_IAR/Source/settings/SUP_Games.wsdt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SUP_Reader_Writer/Debug 6 | 7 | 8 | 9 | 10 | 11 | 21 12 | 1888 13 | 503 14 | 125 15 | 0 16 | D:\Google Disk\EProjects\SUP_Programm\Firmware\BuildLog.log 17 | 0 18 | -1 19 | 20 | 21 | 22 | 57600 23 | 57601 24 | 57603 25 | 33024 26 | 0 27 | 57607 28 | 0 29 | 57635 30 | 57634 31 | 57637 32 | 0 33 | 57643 34 | 57644 35 | 0 36 | 33090 37 | 33057 38 | 57636 39 | 57640 40 | 57641 41 | 33026 42 | 33065 43 | 33063 44 | 33064 45 | 33053 46 | 33054 47 | 0 48 | 33035 49 | 33037 50 | 34399 51 | 0 52 | 33038 53 | 33039 54 | 0 55 | 56 | 57 | 58 | 59 | 143 60 | 30 61 | 30 62 | 30 63 | 64 | 65 | SUP_Reader_Writer 66 | SUP_Reader_Writer/main.c 67 | 68 | 69 | 70 | 24 71 | 2507 72 | 2 73 | 74 | 0 75 | -1 76 | 77 | 78 | 14 79 | 30 80 | 81 | 82 | 1 83 | 1 84 | 0 85 | 0 86 | 1 87 | 1 88 | 1 89 | 5100000011001980000001000000048100000100000029E100000100000001E10000010000000D80000001000000038400000100000017810000080000003384000001000000148100000400000003E100000100000000E1000009000000058100003200000002840000020000001681000001000000198F00000100000002E10000010000000784000001000000 90 | 91 | 92 | 2F00FFFFFFFF7784000007840000808C00002AE10000008200001C8200000182000044D50000678600000D8400000F8400000884000054840000328100001C810000098400000088000001880000028800000388000004880000058800001C8F00001D8F00001F8F0000208F0000218F0000118F000008800000098000000A8000000B8000000C800000158000000A81000001E800000C8400003384000078840000706E0000498100004A8100002F820000168200001882000019820000 93 | 2D00048400004B000000048100001B0000002CE100003E0000001581000024000000318400005200000007E100003A00000023920000000000005F8600002F000000208100002A0000000F8100002200000004E100003800000023E10000380000000C8100001F00000001E10000350000000D80000016000000098100001D000000068400004D000000038400004A00000017810000260000002BE100003D0000000084000047000000148100002300000030840000510000000E8400004F000000008100001800000025E100003A0000001F810000290000000E8100002100000003E100003700000022E10000370000000B8100001E00000000E1000034000000058400004C00000041E1000044000000058100001C000000028400004900000016810000250000001084000050000000328400005300000005E1000039000000518400005500000035E10000430000000A8400004E0000000D8100002000000002E1000036000000 94 | 95 | 96 | 0 97 | 0A0000000A0000006E0000006E000000 98 | 00000000AE090000A0050000C1090000 99 | 4096 100 | 0 101 | 0 102 | 32767 103 | 0 104 | 105 | 106 | 1 107 | 108 | 109 | 4294967295 110 | 60FAFFFF3A05000000000000B0060000 111 | 0000000038080000A0050000AE090000 112 | 4096 113 | 0 114 | 0 115 | 32767 116 | 0 117 | 118 | 119 | 1 120 | 121 | 122 | 34048 123 | 000000001700000022010000C8000000 124 | 04000000500800009C05000094090000 125 | 32768 126 | 0 127 | 0 128 | 32767 129 | 0 130 | 131 | 132 | 1 133 | 134 | 135 | 34052 136 | 000000001700000022010000C8000000 137 | 04000000500800009C05000094090000 138 | 4096 139 | 0 140 | 0 141 | 32767 142 | 0 143 | 144 | 145 | 1 146 | 147 | 148 | 34053 149 | 000000001700000022010000C8000000 150 | 04000000500800009C05000094090000 151 | 4096 152 | 0 153 | 0 154 | 32767 155 | 0 156 | 157 | 158 | 0 159 | 160 | 161 | 894 162 | 127 163 | 1533 164 | 2 165 | 166 | 0 167 | -1 168 | 169 | 170 | 34054 171 | 000000001700000022010000C8000000 172 | 04000000500800009C05000094090000 173 | 4096 174 | 0 175 | 0 176 | 32767 177 | 0 178 | 179 | 180 | 0 181 | 182 | 183 | 894 184 | 127 185 | 1533 186 | 2 187 | 188 | 0 189 | -1 190 | 191 | 192 | 34055 193 | 000000001700000022010000C8000000 194 | 04000000500800009C05000094090000 195 | 4096 196 | 0 197 | 0 198 | 32767 199 | 0 200 | 201 | 202 | 0 203 | 204 | 205 | 766 206 | 127 207 | 1150 208 | 511 209 | 2 210 | 211 | 0 212 | -1 213 | 214 | 215 | 34056 216 | 000000001700000022010000C8000000 217 | 04000000500800009C05000094090000 218 | 4096 219 | 0 220 | 0 221 | 32767 222 | 0 223 | 224 | 225 | 0 226 | 227 | 228 | 894 229 | 127 230 | 1533 231 | 2 232 | 233 | 0 234 | -1 235 | 236 | 237 | 34059 238 | 000000001700000022010000C8000000 239 | 04000000500800009C05000094090000 240 | 4096 241 | 0 242 | 0 243 | 32767 244 | 0 245 | 246 | 247 | 0 248 | 249 | 250 | 2 251 | 252 | 0 253 | -1 254 | 255 | 256 | 34050 257 | 000000001700000080020000A8000000 258 | 00000000000000008002000091000000 259 | 32768 260 | 0 261 | 0 262 | 32767 263 | 0 264 | 265 | 266 | 0 267 | 268 | 269 | 270 | 2 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | <Right-click on a symbol in the editor to show a call graph> 280 | 281 | 282 | 283 | 284 | 285 | 0 286 | 287 | 288 | 0 289 | 290 | 291 | 292 | 293 | 294 | 0 295 | 296 | 297 | 0 298 | 299 | 300 | File 301 | Function 302 | Line 303 | 304 | 305 | 200 306 | 700 307 | 100 308 | 309 | 310 | 311 | 34051 312 | 000000001700000022010000C8000000 313 | 000000000000000022010000B1000000 314 | 32768 315 | 0 316 | 0 317 | 32767 318 | 0 319 | 320 | 321 | 0 322 | 323 | 324 | 325 | Check 326 | File 327 | Line 328 | Message 329 | Severity 330 | 331 | 332 | 200 333 | 200 334 | 100 335 | 500 336 | 100 337 | 338 | 339 | 340 | 34057 341 | 000000001700000022010000C8000000 342 | 000000000000000022010000B1000000 343 | 32768 344 | 0 345 | 0 346 | 32767 347 | 0 348 | 349 | 350 | 0 351 | 352 | 353 | 2 354 | $WS_DIR/SourceBrowseLog.log 355 | 0 356 | -1 357 | 358 | 359 | 34058 360 | 000000001700000080020000A8000000 361 | 00000000000000008002000091000000 362 | 32768 363 | 0 364 | 0 365 | 32767 366 | 0 367 | 368 | 369 | 0 370 | 371 | 372 | 373 | 2 374 | 375 | 376 | 0 377 | 378 | 379 | D:\Google Disk\EProjects\Nixie_IN-18\Debug\Obj\IN-18.pbw 380 | 381 | 382 | File 383 | Name 384 | Scope 385 | Symbol type 386 | 387 | 388 | 300 389 | 300 390 | 300 391 | 300 392 | 393 | 394 | 395 | 34060 396 | 00000000170000000601000078010000 397 | 0000000032000000D700000034080000 398 | 4096 399 | 0 400 | 0 401 | 32767 402 | 0 403 | 404 | 405 | 1 406 | 407 | 408 | 34061 409 | 000000001700000022010000C8000000 410 | 000000000000000022010000B1000000 411 | 32768 412 | 0 413 | 0 414 | 32767 415 | 0 416 | 417 | 418 | 0 419 | 420 | 421 | 422 | 34062 423 | 000000001700000022010000C8000000 424 | 000000000000000022010000B1000000 425 | 32768 426 | 0 427 | 0 428 | 32767 429 | 0 430 | 431 | 432 | 0 433 | 434 | 435 | 436 | 0000000010000000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000E85000000000000000000000000000000000000010000000E850000010000000E850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000D85000000000000000000000000000000000000010000000D850000010000000D850000000000000010000001000000FFFFFFFFFFFFFFFFD700000032000000DB0000003408000001000000020000100400000001000000BFFFFFFFBF0400000C85000000000000000000000000000000000000010000000C850000010000000C850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000A85000000000000000000000000000000000000010000000A850000010000000A850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000098500000000000000000000000000000000000001000000098500000100000009850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000038500000000000000000000000000000000000001000000038500000100000003850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000028500000000000000000000000000000000000001000000028500000100000002850000000000000080000001000000FFFFFFFFFFFFFFFF0000000034080000A00500003808000001000000010000100400000001000000AAFBFFFF7B000000FFFFFFFF070000000085000004850000058500000685000007850000088500000B850000FFFF02000B004354616262656450616E65008000000100000060FAFFFF3A05000000000000B00600000000000038080000A0050000AE090000000000004080005607000000FFFEFF054200750069006C006400010000000085000001000000FFFFFFFFFFFFFFFFFFFEFF094400650062007500670020004C006F006700010000000485000001000000FFFFFFFFFFFFFFFFFFFEFF0C4400650063006C00610072006100740069006F006E007300000000000585000001000000FFFFFFFFFFFFFFFFFFFEFF0A5200650066006500720065006E00630065007300000000000685000001000000FFFFFFFFFFFFFFFFFFFEFF0D460069006E006400200069006E002000460069006C0065007300000000000785000001000000FFFFFFFFFFFFFFFFFFFEFF1541006D0062006900670075006F0075007300200044006500660069006E006900740069006F006E007300000000000885000001000000FFFFFFFFFFFFFFFFFFFEFF0B54006F006F006C0020004F0075007400700075007400000000000B85000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFF0085000001000000FFFFFFFF00850000000000000000000000000000 437 | 438 | 439 | Main 440 | 00200000010000002000FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000034000000FFFEFF000000000000000000000000000100000001000000018001E100000000000035000000FFFEFF000000000000000000000000000100000001000000018003E100000000000037000000FFFEFF0000000000000000000000000001000000010000000180008100000000000018000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000000003A000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004003C000000FFFEFF000000000000000000000000000100000001000000018022E10000000004003B000000FFFEFF000000000000000000000000000100000001000000018025E10000000000003E000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000000041000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040042000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01000D005061737465436F6D626F426F784281000000000000FFFFFFFFFFFEFF0000000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004002B000000FFFEFF000000000000000000000000000100000001000000018024E10000000000003D000000FFFEFF000000000000000000000000000100000001000000018028E10000000004003F000000FFFEFF000000000000000000000000000100000001000000018029E100000000000040000000FFFEFF000000000000000000000000000100000001000000018002810000000000001A000000FFFEFF000000000000000000000000000100000001000000018029810000000000002F000000FFFEFF000000000000000000000000000100000001000000018027810000000000002D000000FFFEFF000000000000000000000000000100000001000000018028810000000000002E000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040027000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040028000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B810000000004001E000000FFFEFF00000000000000000000000000010000000100000001800D8100000000000020000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000033000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800E8100000000000021000000FFFEFF00000000000000000000000000010000000100000001800F8100000000000022000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00E8020000 441 | 442 | 443 | 34049 444 | 0A0000000A0000006E0000006E000000 445 | 0100000000000000FF0200001A000000 446 | 8192 447 | 0 448 | 0 449 | 744 450 | 0 451 | 452 | 453 | 1 454 | 455 | 456 | 457 | 34048 458 | 34049 459 | 34050 460 | 34051 461 | 34052 462 | 34053 463 | 34054 464 | 34055 465 | 34056 466 | 34057 467 | 34058 468 | 34059 469 | 34060 470 | 34061 471 | 34062 472 | 473 | 474 | 475 | 010000000300000001000000000000000000000001000000010000000200000000000000010000000100000000000000280000002800000001000000060000000300000001000000FFFEFF0F2400570053005F0044004900520024005C006D00610069006E002E00630001000000FFFF010014004966436F6E74656E7453746F72616765496D706CFFFEFF00FFFEFFFF24013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E0030003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E003800360031003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E003800390034003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF066D00610069006E002E00630000000000FFFFFFFFFFFFFFFFFFFEFF112400570053005F0044004900520024005C0062007500740074006F006E002E006300010000000180FFFEFF00FFFEFFFF20013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E0030003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0030003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF0862007500740074006F006E002E00630000000000FFFFFFFFFFFFFFFFFFFEFF122400570053005F0044004900520024005C00700061007200730069006E0067002E006300010000000180FFFEFF00FFFEFFFF26013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E0030003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0031003900310036003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0031003900310036003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF09700061007200730069006E0067002E00630000000000FFFFFFFFFFFFFFFFFFFEFF102400570053005F0044004900520024005C00750073006100720074002E006300010000000180FFFEFF00FFFEFFFF22013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E0030003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E00320032003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E00320032003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF09750073006100720074002E00630020002A0000000000FFFFFFFFFFFFFFFFFFFEFF1A2400570053005F0044004900520024005C0066006C006100730068005F006F007000650072006100740069006F006E002E006300010000000180FFFEFF00FFFEFFFF27013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E00370030003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0034003800370035003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0034003800370035003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF1166006C006100730068005F006F007000650072006100740069006F006E002E00630000000000FFFFFFFFFFFFFFFFFFFEFF0E2400570053005F0044004900520024005C006B0035006C002E006300010000000180FFFEFF00FFFEFFFF27013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E00320031003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0032003400350038003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0032003400350038003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF056B0035006C002E00630000000000FFFFFFFFFFFFFFFF0000000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000001000000020000003BFBFFFF34FDFFFF0000000036050000 476 | 477 | 478 | 479 | 480 | -------------------------------------------------------------------------------- /Firmware_IAR/Source/SUP_Reader_Writer.ewp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 3 4 | 5 | Debug 6 | 7 | AVR 8 | 9 | 1 10 | 11 | General 12 | 12 13 | 14 | 10 15 | 1 16 | 1 17 | 21 | 26 | 30 | 34 | 38 | 42 | 46 | 50 | 55 | 59 | 63 | 67 | 71 | 75 | 79 | 83 | 87 | 91 | 95 | 99 | 103 | 107 | 111 | 115 | 119 | 123 | 127 | 132 | 136 | 140 | 144 | 149 | 153 | 158 | 162 | 167 | 171 | 175 | 179 | 183 | 187 | 191 | 195 | 199 | 203 | 208 | 213 | 217 | 221 | 225 | 226 | 227 | 228 | ICCAVR 229 | 6 230 | 231 | 17 232 | 1 233 | 1 234 | 238 | 242 | 246 | 250 | 254 | 258 | 262 | 266 | 270 | 274 | 278 | 282 | 286 | 290 | 294 | 298 | 302 | 306 | 310 | 314 | 318 | 322 | 326 | 331 | 336 | 341 | 345 | 349 | 353 | 357 | 361 | 365 | 369 | 373 | 377 | 381 | 385 | 389 | 393 | 397 | 401 | 405 | 409 | 413 | 417 | 421 | 425 | 429 | 433 | 437 | 441 | 445 | 449 | 453 | 458 | 463 | 467 | 471 | 475 | 479 | 483 | 487 | 491 | 496 | 500 | 504 | 505 | 506 | 507 | AAVR 508 | 5 509 | 510 | 11 511 | 1 512 | 1 513 | 517 | 521 | 525 | 529 | 533 | 537 | 541 | 545 | 549 | 553 | 558 | 562 | 566 | 570 | 574 | 578 | 582 | 586 | 590 | 594 | 598 | 602 | 606 | 610 | 614 | 618 | 622 | 626 | 630 | 634 | 638 | 642 | 646 | 650 | 654 | 658 | 662 | 666 | 670 | 674 | 678 | 682 | 686 | 690 | 691 | 692 | 693 | CUSTOM 694 | 3 695 | 696 | 697 | 698 | 0 699 | 700 | 701 | 702 | BICOMP 703 | 0 704 | 705 | 706 | 707 | BUILDACTION 708 | 1 709 | 710 | 711 | 712 | 713 | 714 | 715 | XLINK 716 | 3 717 | 718 | 16 719 | 1 720 | 1 721 | 725 | 729 | 734 | 739 | 743 | 747 | 751 | 755 | 759 | 763 | 767 | 771 | 775 | 779 | 783 | 787 | 791 | 795 | 799 | 803 | 807 | 811 | 816 | 820 | 824 | 829 | 833 | 837 | 841 | 845 | 849 | 854 | 859 | 863 | 867 | 871 | 875 | 879 | 883 | 887 | 891 | 895 | 899 | 903 | 907 | 911 | 916 | 921 | 925 | 929 | 933 | 937 | 941 | 945 | 949 | 953 | 957 | 961 | 965 | 969 | 973 | 977 | 982 | 986 | 990 | 994 | 998 | 1002 | 1006 | 1010 | 1014 | 1018 | 1022 | 1023 | 1024 | 1025 | XAR 1026 | 2 1027 | 1028 | 0 1029 | 1 1030 | 1 1031 | 1035 | 1039 | 1043 | 1044 | 1045 | 1046 | BILINK 1047 | 0 1048 | 1049 | 1050 | 1051 | 1052 | Release 1053 | 1054 | AVR 1055 | 1056 | 0 1057 | 1058 | General 1059 | 12 1060 | 1061 | 10 1062 | 1 1063 | 0 1064 | 1068 | 1073 | 1077 | 1081 | 1085 | 1089 | 1093 | 1097 | 1102 | 1106 | 1110 | 1114 | 1118 | 1122 | 1126 | 1130 | 1134 | 1138 | 1142 | 1146 | 1150 | 1154 | 1158 | 1162 | 1166 | 1170 | 1174 | 1179 | 1183 | 1187 | 1191 | 1196 | 1200 | 1205 | 1209 | 1214 | 1218 | 1222 | 1226 | 1230 | 1234 | 1238 | 1242 | 1246 | 1250 | 1255 | 1260 | 1264 | 1268 | 1272 | 1273 | 1274 | 1275 | ICCAVR 1276 | 6 1277 | 1278 | 17 1279 | 1 1280 | 0 1281 | 1285 | 1289 | 1293 | 1297 | 1301 | 1305 | 1309 | 1313 | 1317 | 1321 | 1325 | 1329 | 1333 | 1337 | 1341 | 1345 | 1349 | 1353 | 1357 | 1361 | 1365 | 1369 | 1373 | 1378 | 1383 | 1388 | 1392 | 1396 | 1400 | 1404 | 1408 | 1412 | 1416 | 1420 | 1424 | 1428 | 1432 | 1436 | 1440 | 1444 | 1448 | 1452 | 1456 | 1460 | 1464 | 1468 | 1472 | 1476 | 1480 | 1484 | 1488 | 1492 | 1496 | 1500 | 1505 | 1510 | 1514 | 1518 | 1522 | 1526 | 1530 | 1534 | 1538 | 1543 | 1547 | 1551 | 1552 | 1553 | 1554 | AAVR 1555 | 5 1556 | 1557 | 11 1558 | 1 1559 | 0 1560 | 1564 | 1568 | 1572 | 1576 | 1580 | 1584 | 1588 | 1592 | 1596 | 1600 | 1605 | 1609 | 1613 | 1617 | 1621 | 1625 | 1629 | 1633 | 1637 | 1641 | 1645 | 1649 | 1653 | 1657 | 1661 | 1665 | 1669 | 1673 | 1677 | 1681 | 1685 | 1689 | 1693 | 1697 | 1701 | 1705 | 1709 | 1713 | 1717 | 1721 | 1725 | 1729 | 1733 | 1737 | 1738 | 1739 | 1740 | CUSTOM 1741 | 3 1742 | 1743 | 1744 | 1745 | 0 1746 | 1747 | 1748 | 1749 | BICOMP 1750 | 0 1751 | 1752 | 1753 | 1754 | BUILDACTION 1755 | 1 1756 | 1757 | 1758 | 1759 | 1760 | 1761 | 1762 | XLINK 1763 | 3 1764 | 1765 | 16 1766 | 1 1767 | 0 1768 | 1772 | 1776 | 1781 | 1786 | 1790 | 1794 | 1798 | 1802 | 1806 | 1810 | 1814 | 1818 | 1822 | 1826 | 1830 | 1834 | 1838 | 1842 | 1846 | 1850 | 1854 | 1858 | 1863 | 1867 | 1871 | 1876 | 1880 | 1884 | 1888 | 1892 | 1896 | 1901 | 1906 | 1910 | 1914 | 1918 | 1922 | 1926 | 1930 | 1934 | 1938 | 1942 | 1946 | 1950 | 1954 | 1958 | 1963 | 1968 | 1972 | 1976 | 1980 | 1984 | 1988 | 1992 | 1996 | 2000 | 2004 | 2008 | 2012 | 2016 | 2020 | 2024 | 2029 | 2033 | 2037 | 2041 | 2045 | 2049 | 2053 | 2057 | 2061 | 2065 | 2069 | 2070 | 2071 | 2072 | XAR 2073 | 2 2074 | 2075 | 0 2076 | 1 2077 | 0 2078 | 2082 | 2086 | 2090 | 2091 | 2092 | 2093 | BILINK 2094 | 0 2095 | 2096 | 2097 | 2098 | 2099 | Debug 2100 | 2101 | 2102 | $PROJ_DIR$\main.c 2103 | 2104 | 2105 | --------------------------------------------------------------------------------