├── 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 |
--------------------------------------------------------------------------------