ബ്ലാക്ക് മാജിക് ബ്ലൂ ഗുളിക (STM32F103 അടിസ്ഥാനമാക്കിയുള്ള ഒരു മൊഡ്യൂളിൽ നിന്ന് ഞങ്ങൾ ഒരു ബ്ലാക്ക് മാജിക് പ്രോബ് പ്രോഗ്രാമർ നിർമ്മിക്കുന്നു). ബ്ലാക്ക് മാജിക് ബ്ലൂ ടാബ്‌ലെറ്റ് (STM32F103 അടിസ്ഥാനമാക്കിയുള്ള ഒരു മൊഡ്യൂളിൽ നിന്ന് ഞങ്ങൾ ഒരു ബ്ലാക്ക് മാജിക് പ്രോബ് പ്രോഗ്രാമർ നിർമ്മിക്കുന്നു) പ്രോഗ്രാമിംഗ് stm32 കണ്ടെത്തൽ

മൈക്രോകൺട്രോളറുകളിലേക്ക് ഫേംവെയർ ഡൗൺലോഡ് ചെയ്യാൻ STM32പ്രോഗ്രാമർ ഉപയോഗിക്കുന്നു ST-ലിങ്ക്, ഒരു ഇന്റർഫേസ് വഴി പ്രോഗ്രാമബിൾ മൈക്രോകൺട്രോളറുമായി ബന്ധിപ്പിക്കാൻ കഴിയും എസ്.ഡബ്ല്യു.ഡി.. മാത്രമല്ല, അത് തന്നെ ഉപയോഗിക്കുന്നു ST-ലിങ്ക്ഒപ്പം എസ്.ഡബ്ല്യു.ഡി.ബ്രേക്ക്‌പോയിന്റുകൾക്കുള്ള പിന്തുണയോടെ നിങ്ങൾക്ക് വികസന പരിതസ്ഥിതിയിൽ നിന്ന് ഫേംവെയറിന്റെ ഘട്ടം ഘട്ടമായുള്ള ഡീബഗ്ഗിംഗ് നടത്താം ( ബ്രേക്ക്പോയിന്റ്). ഒരേസമയം ഇൻസ്റ്റാൾ ചെയ്തവയുടെ എണ്ണം ബ്രേക്ക് പോയിന്റുകൾകുറച്ച് കഷണങ്ങളായി പരിമിതപ്പെടുത്തിയിരിക്കുന്നു (5 കഷണങ്ങൾ പോലെ എത്രയെന്ന് ഞാൻ കൃത്യമായി ഓർക്കുന്നില്ല), എന്നാൽ ഫേംവെയർ ഡീബഗ് ചെയ്യാൻ ഇത് മതിയാകും.

മുതൽ ബ്രാൻഡഡ് ഡീബഗ് ബോർഡുകളിൽ എസ്.ടിഒരു ടാർഗെറ്റ് മൈക്രോകൺട്രോളറും ഒരു പ്രോഗ്രാമറും ബോർഡിലുണ്ട് ST-ലിങ്ക്, ഇത് ഒരു മൈക്രോകൺട്രോളറിലും നിർമ്മിച്ചതാണ് STM32. വഴിയിൽ, വളരെ സൗകര്യപ്രദമായ പരിഹാരം. കൂടാതെ, ഡീബഗ് ബോർഡിൽ നിർമ്മിച്ചിരിക്കുന്ന പ്രോഗ്രാമർ, ഏതെങ്കിലും ബാഹ്യ മൈക്രോകൺട്രോളർ ഫ്ലാഷ് ചെയ്യാനും ഉപയോഗിക്കാം. STM32.ഈ ആവശ്യങ്ങൾക്ക്, നിങ്ങൾക്ക് ഇന്റർഫേസ് പ്രവർത്തനരഹിതമാക്കാൻ കഴിയുന്ന ബോർഡിലും ജമ്പറുകളിലും ഒരു പ്രത്യേക ചീപ്പ് ഉണ്ട് എസ്.ഡബ്ല്യു.ഡി.ബോർഡിൽ സോൾഡർ ചെയ്ത ഒരു മൈക്രോകൺട്രോളറിൽ നിന്ന്. എന്റെ കയ്യിൽ ഒരു ബോർഡ് ഉണ്ട് stm32f4 കണ്ടെത്തൽ, അതിൽ മൈക്രോകൺട്രോളർ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ട് STM32F407VG, ഞാൻ ഈ ബോർഡ് ഒരു പ്രോഗ്രാമറായി ഉപയോഗിക്കുന്നു ST-ലിങ്ക്:

സ്വാഭാവികമായും, നിങ്ങൾക്ക് ഒരു പ്രത്യേക പ്രോഗ്രാമർ വാങ്ങാം ST-ലിങ്ക്. ഇവിടെ നിരവധി ഓപ്ഷനുകൾ ഉണ്ട്. ആദ്യത്തേത് ബ്രാൻഡഡ് ആണ് ST-ലിങ്ക്, ഗാൽവാനിക് ഒറ്റപ്പെടലോടെയും അല്ലാതെയും വരുന്നു. ഈ പ്രോഗ്രാമർമാർ ഇതുപോലെ കാണപ്പെടുന്നു:

മറ്റൊരു ഓപ്ഷൻ ചൈനീസ് ആണ് ST-ലിങ്ക്ഫ്ലാഷ് ഡ്രൈവ് ഫോം ഫാക്ടറിൽ:

ഓപ്ഷനും തത്വത്തിൽ മോശമല്ല, പക്ഷേ അതിനുള്ളിൽ ഇന്റർഫേസ് പരിരക്ഷയൊന്നും ഇല്ലെന്ന് നിങ്ങൾ ഓർമ്മിക്കേണ്ടതുണ്ട് USBടാർഗെറ്റ് ബോർഡ്, അതിനാൽ സർക്യൂട്ടും പിസി ഗ്രൗണ്ടും വിന്യസിച്ചിട്ടില്ലെങ്കിൽ, ഡീബഗ്ഗ് ചെയ്യുന്ന സർക്യൂട്ടിൽ ഒരു ഷോർട്ട് സർക്യൂട്ട് ഉണ്ട്, കൂടാതെ പ്രോഗ്രാമർ കത്തിക്കുന്നതിനുള്ള ഉയർന്ന സാധ്യതയുണ്ട്. USBകമ്പ്യൂട്ടറിലെ പോർട്ട്. അതിനാൽ ഈ പ്രോഗ്രാമറുമായി പ്രവർത്തിക്കുമ്പോൾ നിങ്ങൾ വളരെ ശ്രദ്ധിക്കേണ്ടതുണ്ട്!

ST-ലിങ്ക് പ്രോഗ്രാമറെ STM32 മൈക്രോകൺട്രോളറിലേക്ക് ബന്ധിപ്പിക്കുന്നു

ഇന്റർഫേസ് എസ്.ഡബ്ല്യു.ഡി., പ്രോഗ്രാമർ മൈക്രോകൺട്രോളറുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നതിനാൽ, അതിന് 2 വരികളുണ്ട്:

  • SWDIO
  • എസ്.ഡബ്ല്യു.സി.എൽ.കെ

ഒരു പുതിയ മൈക്രോകൺട്രോളറിലേക്കോ ഡീബഗ്ഗിംഗ് ആന്റ് ഡെവലപ്‌മെന്റ് എൻവയോൺമെന്റിലേക്കോ (ഉദാഹരണത്തിന് IAR-ൽ നിന്ന്) ഫേംവെയർ വിജയകരമായി ലോഡുചെയ്യുന്നതിന് ആവശ്യമായ ഏറ്റവും കുറഞ്ഞ തുകയാണിത്. എല്ലാ മൈക്രോകൺട്രോളറുകളിലും STM32പ്രോഗ്രാമിംഗ് പിന്നുകൾ ഇനിപ്പറയുന്ന I/O പോർട്ടുകളുമായി സംയോജിപ്പിച്ചിരിക്കുന്നു:

  • SWDIO - PA13
  • SWCLK - PA14

നിഗമനങ്ങൾ PA13ഒപ്പം PA14ഏറ്റവും സാധാരണമായ I/O പോർട്ടുകളായി ഉപയോഗിക്കാം, എന്നിരുന്നാലും, ഈ സാഹചര്യത്തിൽ, വികസന പരിതസ്ഥിതിയിൽ നിന്ന് ഫേംവെയർ ഡീബഗ് ചെയ്യാനുള്ള കഴിവ് നഷ്ടപ്പെടും. കൂടാതെ, MK-യിൽ ലോഡുചെയ്ത ഫേംവെയറിൽ നിന്ന് നിങ്ങൾ സ്ഥിര പിൻ ക്രമീകരണങ്ങൾ മാറ്റുകയാണെങ്കിൽ PA13ഒപ്പം PA14, പുതിയ ഫേംവെയർ ഡൗൺലോഡ് ചെയ്യുന്ന പ്രക്രിയ ബുദ്ധിമുട്ടാണ്, പ്രോഗ്രാമറും MK: ലൈനും ബന്ധിപ്പിക്കുന്ന മറ്റൊരു വയർ നിങ്ങൾ ഉപയോഗിക്കേണ്ടിവരും. പുനഃസജ്ജമാക്കുക. ഈ സാഹചര്യത്തിൽ, ഫേംവെയർ ഡൗൺലോഡ് ചെയ്യുന്നതിന് മുമ്പ്, ST-ലിങ്ക്മൈക്രോകൺട്രോളർ പുനഃസജ്ജമാക്കും, അതുവഴി പിന്നുകൾ കൈമാറും PA13ഒപ്പം PA14ഡിഫോൾട്ട് അവസ്ഥയിലേക്ക്, അതിനുശേഷം അത് പുതിയ ഫേംവെയർ എംകെയിലേക്ക് ലോഡ് ചെയ്യും. ഫേംവെയർ ലോഡുചെയ്യുന്നതിന് മുമ്പ് മൈക്രോകൺട്രോളർ റീസെറ്റ് പ്രവർത്തനം പ്രവർത്തനക്ഷമമാക്കുന്നതിന് IARക്രമീകരണ വിഭാഗത്തിൽ -e ST-ലിങ്ക്- നിങ്ങൾ ഓപ്ഷൻ തിരഞ്ഞെടുക്കണം "പിൻ പുനഃസജ്ജമാക്കുക".

പ്രസിദ്ധീകരിച്ചത് 08/09/2016

മൈക്രോകൺട്രോളറുകൾ STM32അവയുടെ ശക്തി, സാമാന്യം വൈവിധ്യമാർന്ന പെരിഫറലുകൾ, വഴക്കം എന്നിവ കാരണം കൂടുതൽ ജനപ്രിയമായിക്കൊണ്ടിരിക്കുകയാണ്. ഞങ്ങൾ ഒരു ബജറ്റ് ടെസ്റ്റ് ബോർഡ് ഉപയോഗിച്ച് പഠിക്കാൻ തുടങ്ങും, അതിന്റെ വില $ 2 കവിയരുത് (ചൈനയിൽ നിന്ന്). നമുക്കും വേണ്ടിവരും ST-ലിങ്ക്പ്രോഗ്രാമർ, ഇതിന്റെ വില ഏകദേശം $2.5 ആണ് (ചൈനയിൽ നിന്ന്). അത്തരം ചെലവുകൾ വിദ്യാർത്ഥികൾക്കും സ്കൂൾ കുട്ടികൾക്കും താങ്ങാനാകുന്നതാണ്, അതിനാൽ ഈ ബജറ്റ് ഓപ്ഷൻ ഉപയോഗിച്ച് ആരംഭിക്കാൻ ഞാൻ നിർദ്ദേശിക്കുന്നു.


ഈ മൈക്രോകൺട്രോളർ ഏറ്റവും ശക്തമല്ല STM32, എന്നാൽ ഏറ്റവും ദുർബലമായ ഒന്നല്ല. കൂടെ വിവിധ ബോർഡുകൾ ഉണ്ട് STM32, ഉൾപ്പെടെ കണ്ടെത്തൽഏകദേശം $20 വില. അത്തരം ബോർഡുകളിൽ, മിക്കവാറും എല്ലാം ഞങ്ങളുടെ ബോർഡിലേതിന് സമാനമാണ്, കൂടാതെ ഒരു പ്രോഗ്രാമറും. ഞങ്ങളുടെ കാര്യത്തിൽ, ഞങ്ങൾ പ്രോഗ്രാമറെ പ്രത്യേകം ഉപയോഗിക്കും.

മൈക്രോകൺട്രോളർ STM32F103C8. സ്വഭാവഗുണങ്ങൾ

  • ARM 32-ബിറ്റ് Cortex-M3 കോർ
  • പരമാവധി ആവൃത്തി 72MHz
  • പ്രോഗ്രാമുകൾക്കായി 64KB ഫ്ലാഷ് മെമ്മറി
  • 20Kb SRAM മെമ്മറി
  • വൈദ്യുതി വിതരണം 2.0 … 3.3V
  • 2 x 12-ബിറ്റ് ADC (0 ... 3.6V)
  • ഡിഎംഎ കൺട്രോളർ
  • 37 5V ടോളറന്റ് ഇൻപുട്ടുകൾ/ഔട്ട്പുട്ടുകൾ
  • 4 16-ബിറ്റ് ടൈമറുകൾ
  • 2 വാച്ച് ഡോഗ് ടൈമറുകൾ
  • I2C - 2 ബസുകൾ
  • USART - 3 ബസുകൾ
  • SPI - 2 ബസുകൾ
  • USB 2.0 ഫുൾ സ്പീഡ് ഇന്റർഫേസ്
  • RTC - ബിൽറ്റ്-ഇൻ ക്ലോക്ക്

STM32F103C8 ബോർഡിൽ ലഭ്യമാണ്

  • ഔട്ട്പുട്ട് പോർട്ടുകൾ A0-A12, B0-B1, B3-B15, C13-C15
  • മൈക്രോ-യുഎസ്ബിഅതിലൂടെ നിങ്ങൾക്ക് ബോർഡ് പവർ ചെയ്യാൻ കഴിയും. ബോർഡിൽ 3.3V വോൾട്ടേജ് സ്റ്റെബിലൈസർ ഉണ്ട്. ബോർഡിലെ അനുബന്ധ പിന്നുകളിലേക്ക് 3.3V അല്ലെങ്കിൽ 5V പവർ നൽകാം.
  • ബട്ടൺ പുനഃസജ്ജമാക്കുക
  • രണ്ട് ജമ്പർമാർ ബൂട്ട്0ഒപ്പം ബൂട്ട്1. വഴി ഫ്ലാഷിംഗ് സമയത്ത് ഞങ്ങൾ അത് ഉപയോഗിക്കും UART.
  • രണ്ട് ക്വാർട്സ് 8 MHz, 32768 Hz. മൈക്രോകൺട്രോളറിന് ഒരു ഫ്രീക്വൻസി മൾട്ടിപ്ലയർ ഉണ്ട്, അതിനാൽ 8 മെഗാഹെർട്സ് ക്വാർട്സ് ഉപയോഗിച്ച് നമുക്ക് പരമാവധി 72 മെഗാഹെർട്സ് കൺട്രോളർ ആവൃത്തിയിൽ എത്താം.
  • രണ്ട് എൽ.ഇ.ഡി. പി.ഡബ്ല്യു.ആർ- വൈദ്യുതി വിതരണം ചെയ്തുവെന്ന് സിഗ്നലുകൾ. PC13- ഔട്ട്പുട്ടിലേക്ക് ബന്ധിപ്പിച്ചിരിക്കുന്നു C13.
  • പ്രോഗ്രാമർക്കുള്ള കണക്റ്റർ ST-ലിങ്ക്.

അതിനാൽ, മൈക്രോകൺട്രോളർ ഫ്ലാഷ് ചെയ്യാൻ ശ്രമിച്ചുകൊണ്ട് നമുക്ക് ആരംഭിക്കാം. ഇത് USART വഴിയോ ഒരു പ്രോഗ്രാമർ ഉപയോഗിച്ചോ ചെയ്യാം ST-ലിങ്ക്.

ഫേംവെയറിനായുള്ള ടെസ്റ്റ് ഫയൽ നിങ്ങൾക്ക് ഡൗൺലോഡ് ചെയ്യാം. പ്രോഗ്രാം ബോർഡിൽ LED ഫ്ലാഷ് ചെയ്യുന്നു.

വിൻഡോസിനായി USB-Uart അഡാപ്റ്റർ ഉപയോഗിക്കുന്ന STM32 ഫേംവെയർ

സിസ്റ്റം മെമ്മറിയിൽ STM32ഇതുണ്ട് ബൂട്ട്ലോഡർ. ബൂട്ട്ലോഡർ പ്രൊഡക്ഷൻ ഘട്ടത്തിലും ഏതെങ്കിലും മൈക്രോകൺട്രോളറിലും രേഖപ്പെടുത്തുന്നു STM32ഇന്റർഫേസ് വഴി പ്രോഗ്രാം ചെയ്യാം USARTഒരു USART-USB അഡാപ്റ്റർ ഉപയോഗിക്കുന്നു. ജനപ്രിയ മൈക്രോ സർക്യൂട്ടുകളുടെ അടിസ്ഥാനത്തിലാണ് ഇത്തരം അഡാപ്റ്ററുകൾ നിർമ്മിക്കുന്നത് FT232RL. ഒന്നാമതായി, അഡാപ്റ്റർ കമ്പ്യൂട്ടറുമായി ബന്ധിപ്പിച്ച് ഡ്രൈവറുകൾ ഇൻസ്റ്റാൾ ചെയ്യുക (ആവശ്യമെങ്കിൽ). നിർമ്മാതാവിന്റെ വെബ്സൈറ്റിൽ നിന്ന് നിങ്ങൾക്ക് ഡ്രൈവറുകൾ ഡൗൺലോഡ് ചെയ്യാം FT232RL– ftdichip.com. നിങ്ങൾ ഡ്രൈവറുകൾ ഡൗൺലോഡ് ചെയ്യേണ്ടതുണ്ട് വി.സി.പി(വെർച്വൽ കോം പോർട്ട്). ഡ്രൈവറുകൾ ഇൻസ്റ്റാൾ ചെയ്ത ശേഷം, നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ ഒരു വെർച്വൽ സീരിയൽ പോർട്ട് ദൃശ്യമാകും.


ബന്ധിപ്പിക്കുന്നു RXഒപ്പം TXഅനുബന്ധ പിന്നുകളിലേക്കുള്ള ഔട്ട്പുട്ടുകൾ USART1മൈക്രോകൺട്രോളർ. RXഅഡാപ്റ്റർ ബന്ധിപ്പിക്കുക TXമൈക്രോകൺട്രോളർ (A9). TXഅഡാപ്റ്റർ ബന്ധിപ്പിക്കുക RXമൈക്രോകൺട്രോളർ (A10). USART-USB-ന് 3.3V പവർ ഔട്ട്പുട്ടുകൾ ഉള്ളതിനാൽ, ഞങ്ങൾ അതിൽ നിന്ന് ബോർഡിലേക്ക് വൈദ്യുതി വിതരണം ചെയ്യും.

പ്രോഗ്രാമിംഗ് മോഡിലേക്ക് മൈക്രോകൺട്രോളർ ഇടാൻ, നിങ്ങൾ പിന്നുകൾ സജ്ജീകരിക്കേണ്ടതുണ്ട് ബൂട്ട്0ഒപ്പം ബൂട്ട്1ആവശ്യമുള്ള അവസ്ഥയിലേക്ക് അത് ബട്ടൺ ഉപയോഗിച്ച് റീബൂട്ട് ചെയ്യുക പുനഃസജ്ജമാക്കുകഅല്ലെങ്കിൽ ഓഫാക്കി മൈക്രോകൺട്രോളറിന്റെ പവർ ഓണാക്കുക. ഇതിനായി ഞങ്ങൾക്ക് ജമ്പറുകൾ ഉണ്ട്. വ്യത്യസ്ത കോമ്പിനേഷനുകൾ മൈക്രോകൺട്രോളറിനെ വ്യത്യസ്ത മോഡുകളിലേക്ക് പ്രേരിപ്പിക്കുന്നു. ഞങ്ങൾക്ക് ഒരു മോഡിൽ മാത്രമേ താൽപ്പര്യമുള്ളൂ. ഇത് ചെയ്യുന്നതിന്, മൈക്രോകൺട്രോളർ ഉണ്ട് ബൂട്ട്0ഒരു ലോജിക്കൽ ഒന്ന് ഉണ്ടായിരിക്കണം, ഔട്ട്പുട്ട് ബൂട്ട്1- ലോജിക്കൽ പൂജ്യം. ബോർഡിൽ ഇത് ഇനിപ്പറയുന്ന ജമ്പർ സ്ഥാനം ആണ്:

ബട്ടൺ അമർത്തി ശേഷം പുനഃസജ്ജമാക്കുകഅല്ലെങ്കിൽ വൈദ്യുതി വിച്ഛേദിക്കുകയും ബന്ധിപ്പിക്കുകയും ചെയ്യുന്നു, മൈക്രോകൺട്രോളർ പ്രോഗ്രാമിംഗ് മോഡിൽ പ്രവേശിക്കണം.

ഫേംവെയർ സോഫ്റ്റ്വെയർ

നമ്മൾ USB-UART അഡാപ്റ്റർ ഉപയോഗിക്കുകയാണെങ്കിൽ, പോർട്ട് നാമം ഇതുപോലെയായിരിക്കും /dev/ttyUSB0

ചിപ്പ് വിവരങ്ങൾ നേടുക

ഫലമായി:

നമ്മൾ ചിപ്പിൽ നിന്ന് dump.bin ഫയലിലേക്ക് വായിക്കുന്നു

sudo stm32flash -r dump.bin /dev/ttyUSB0

ചിപ്പിലേക്ക് എഴുതുക

sudo stm32flash -w dump.bin -v -g 0x0 /dev/ttyUSB0

ഫലമായി:

Stm32flash 0.4 http://stm32flash.googlecode.com/ പാഴ്‌സർ ഉപയോഗിക്കുന്നു: റോ ബൈനറി ഇന്റർഫേസ് സീരിയൽ_പോസിക്‌സ്: 57600 8E1 പതിപ്പ്: 0x22 ഓപ്ഷൻ 1: 0x00 ഓപ്ഷൻ 2: 0x00 ഡിവൈസ് ഐഡി: 0x00 ഡിവൈസ് ഐഡി: 0x00 -2000-ബിബിഐഡി 1 നിക്ഷിപ്തം ബൂട്ട്ലോഡർ) - ഫ്ലാഷ്: 128KiB (സെക്ടർ വലുപ്പം: 4x1024) - ഓപ്‌ഷൻ റാം: 16b - സിസ്റ്റം റാം: 2KiB മെമ്മറിയിലേക്ക് എഴുതുക മെമ്മറി മായ്‌ക്കുന്നു, എഴുതിയതും പരിശോധിച്ചതുമായ വിലാസം 0x08012900 (100.00%) പൂർത്തിയായി. 0x08000000 എന്ന വിലാസത്തിൽ നിർവ്വഹണം ആരംഭിക്കുന്നു... പൂർത്തിയായി.

വിൻഡോസിനായുള്ള ST-ലിങ്ക് പ്രോഗ്രാമർ ഉപയോഗിക്കുന്ന STM32 ഫേംവെയർ

ഒരു പ്രോഗ്രാമർ ഉപയോഗിക്കുമ്പോൾ ST-ലിങ്ക്നിഗമനങ്ങൾ ബൂട്ട്0ഒപ്പം ബൂട്ട്1ഉപയോഗിക്കുന്നില്ല കൂടാതെ കൺട്രോളറിന്റെ സാധാരണ പ്രവർത്തനത്തിന് സ്റ്റാൻഡേർഡ് സ്ഥാനത്തായിരിക്കണം.

(റഷ്യൻ ഭാഷയിലുള്ള പുസ്തകം)

STM32 അടയാളപ്പെടുത്തൽ

ഉപകരണ കുടുംബംഉൽപ്പന്ന തരംഉപകരണ ഉപകുടുംബംപിൻ എണ്ണംഫ്ലാഷ് മെമ്മറി വലിപ്പംപാക്കേജ്താപനില പരിധി
STM32 =
ARM അടിസ്ഥാനമാക്കിയുള്ള 32-ബിറ്റ് മൈക്രോകൺട്രോളർ
F = പൊതുവായ ഉദ്ദേശ്യം
L = അൾട്രാ ലോ പവർ
TS = ടച്ച്സ്ക്രീൻ
W = വയർലെസ് സിസ്റ്റം-ഓൺ-ചിപ്പ്
60 = മൾട്ടിടച്ച് റെസിസ്റ്റീവ്
103 = പ്രകടന രേഖ
F = 20 പിന്നുകൾ
G = 28 പിന്നുകൾ
കെ = 32 പിന്നുകൾ
ടി = 36 പിന്നുകൾ
H = 40 പിൻസ്
സി = 48/49 പിന്നുകൾ
R = 64 പിന്നുകൾ
O=90 പിന്നുകൾ
വി = 100 പിന്നുകൾ
Z = 144 പിന്നുകൾ
I = 176 പിന്നുകൾ
ബി = 208 പിന്നുകൾ
N = 216 പിന്നുകൾ
4 = 16 Kbytes ഫ്ലാഷ് മെമ്മറി
6 = 32 Kbytes ഫ്ലാഷ് മെമ്മറി
8 = 64 Kbytes ഫ്ലാഷ് മെമ്മറി
B = 128 Kbytes ഫ്ലാഷ് മെമ്മറി
Z = 192 Kbytes ഫ്ലാഷ് മെമ്മറി
C = 256 Kbytes ഫ്ലാഷ് മെമ്മറി
D = 384 Kbytes ഫ്ലാഷ് മെമ്മറി
E = 512 Kbytes ഫ്ലാഷ് മെമ്മറി
F = 768 Kbytes ഫ്ലാഷ് മെമ്മറി
G = 1024 Kbytes ഫ്ലാഷ് മെമ്മറി
I = 2048 Kbytes ഫ്ലാഷ് മെമ്മറി
H = UFBGA
N=TFBGA
P = TSSOP
T = LQFP
U = V/UFQFPN
Y = WLCSP
6 = വ്യാവസായിക താപനില പരിധി, –40…+85 °C.
7 = വ്യാവസായിക താപനില പരിധി, -40…+ 105 °C.
STM32എഫ്103 സി8 ടി6

എഴുത്ത്/വായന സംരക്ഷണം എങ്ങനെ നീക്കം ചെയ്യാം?

നിങ്ങൾക്ക് STM32F103 ഉള്ള ഒരു ബോർഡ് ലഭിച്ചുവെങ്കിലും പ്രോഗ്രാമർ അത് കാണുന്നില്ലെങ്കിൽ, മൈക്രോകൺട്രോളറിന്റെ ഫ്ലാഷ് മെമ്മറി ചൈനക്കാർ സംരക്ഷിച്ചു എന്നാണ് ഇതിനർത്ഥം. ചോദ്യം "എന്തുകൊണ്ട്?" നമുക്ക് അത് അവഗണിക്കാം. തടയൽ നീക്കംചെയ്യുന്നതിന്, ഞങ്ങൾ ഒരു UART അഡാപ്റ്ററും പ്രോഗ്രാമും അതിലൂടെ ബന്ധിപ്പിക്കും. പ്രോഗ്രാമിംഗിനായി ഞങ്ങൾ ജമ്പറുകൾ സജ്ജമാക്കി, ഞങ്ങൾ പോകുന്നു:

stm32flash യൂട്ടിലിറ്റി ഉപയോഗിച്ച് ഞാൻ ഉബുണ്ടുവിൽ നിന്ന് ഇത് ചെയ്യും.

1. മൈക്രോകൺട്രോളർ ദൃശ്യമാണോയെന്ന് പരിശോധിക്കുക:

Sudo stm32flash /dev/ttyUSB0

നിങ്ങൾക്ക് ഇതുപോലുള്ള എന്തെങ്കിലും ലഭിക്കണം:

Stm32flash 0.4 http://stm32flash.googlacode.com/ 57600 8E1 പതിപ്പ്: 0x00 ഓപ്ഷൻ 2: 0x00 ഓപ്ഷൻ 2: 0x041 (1012 ബി (512 ബി (512 ബി (512 ബി) ബൂട്ട്ലോഡർ റിസർവ്വ് ചെയ്തു) - ഫ്ലാഷ്: 20kib 128KiB (സെക്ടർ വലുപ്പം: 4x1024) - ഓപ്ഷൻ റാം: 16b - സിസ്റ്റം റാം: 2KiB

2. റീഡ് പ്രൊട്ടക്ഷൻ നീക്കം ചെയ്യുക, തുടർന്ന് റൈറ്റ് പ്രൊട്ടക്ഷൻ:

Sudo stm32flash -k /dev/ttyUSB0 stm32flash 0.4 http://stm32flash.googlecode.com/ Interface serial_posix: 57600 8E1 പതിപ്പ്: 0x22 ഓപ്ഷൻ 1: 0x00 ഓപ്ഷൻ 2: 0x00 ഓപ്ഷൻ: 0x00 ഉപകരണം: 0x00 ഉപകരണം iB ( ബൂട്ട്ലോഡർ വഴി 512b റിസർവ് ചെയ്‌തിരിക്കുന്നു) - ഫ്ലാഷ്: 128KiB (സെക്ടർ വലുപ്പം: 4x1024) - ഓപ്‌ഷൻ റാം: 16b - സിസ്റ്റം റാം: 2KiB റീഡ്-അൺപ്രൊട്ടക്റ്റിംഗ് ഫ്ലാഷ് പൂർത്തിയായി. sudo stm32flash -u /dev/ttyUSB0 stm32flash 0.4 http://stm32flash.googlecode.com/ ഇന്റർഫേസ് serial_posix: 57600 8E1 പതിപ്പ്: 0x22 ഓപ്ഷൻ 1: 0x00 ഓപ്ഷൻ 2: 0x00 ഓപ്‌ഷൻ: 0x00 2: 0x00 ഉപകരണം: 0x00 കിബി ( ബൂട്ട്ലോഡർ വഴി 512b റിസർവ് ചെയ്‌തിരിക്കുന്നു) - ഫ്ലാഷ്: 128KiB (സെക്ടർ വലുപ്പം: 4x1024) - ഓപ്‌ഷൻ റാം: 16b - സിസ്റ്റം റാം: 2KiB റൈറ്റ്-അൺപ്രൊട്ടക്റ്റിംഗ് ഫ്ലാഷ് പൂർത്തിയായി.

ഇപ്പോൾ നിങ്ങൾക്ക് സാധാരണ മൈക്രോകൺട്രോളർ ഉപയോഗിച്ച് പ്രവർത്തിക്കാം.

STMicroelectronics-ൽ നിന്ന് വിറ്റഴിക്കപ്പെടുന്ന പ്രോഗ്രാമർക്ക് ഭവനങ്ങളിൽ നിർമ്മിച്ചതും താങ്ങാനാവുന്നതുമായ ഒരു ബദൽ. ഇന്റർനെറ്റിൽ കണ്ടെത്തിയ നിരവധി ലേഖനങ്ങളുടെയും ഡയഗ്രമുകളുടെയും ഒരു ഉദ്ധരണിയും സമാഹാരവുമാണ് ഇത്. സാധ്യമായ ഏറ്റവും ചെറിയ ഫോം ഫാക്ടറിൽ നടപ്പിലാക്കൽ.

ഉൾച്ചേർത്ത ഏതൊരു സോഫ്റ്റ്‌വെയർ ഡെവലപ്പർക്കും അവൻ ഉപയോഗിക്കുന്ന ഉപകരണങ്ങൾക്കായി ഒരു പ്രോഗ്രാമർ ഉണ്ടായിരിക്കണം. എന്റെ കാര്യത്തിൽ, STMicroelectronics-ൽ നിന്നുള്ള മൈക്രോകൺട്രോളറുകൾ, അതുപോലെ Milandr (ARM കോർ അടിസ്ഥാനമാക്കിയുള്ള റഷ്യൻ പ്രോസസ്സറുകൾ).

ഈ ഉപകരണം വാങ്ങുന്നത് വളരെ ചെലവേറിയതാണ്, പ്രത്യേകിച്ച് ഘടകങ്ങളുടെ വിലയുമായി താരതമ്യം ചെയ്യുമ്പോൾ - പ്രിന്റഡ് സർക്യൂട്ട് ബോർഡും റേഡിയോ ഘടകങ്ങളും.

പ്രോഗ്രാമറെ നമ്മളെത്തന്നെ ആക്കാനാണ് തീരുമാനം. അടിസ്ഥാനം വിവിധ മൈക്രോകൺട്രോളറുകൾക്കുള്ള ഡീബഗ് ബോർഡുകളുടെ സർക്യൂട്ട് ഡയഗ്രമുകളായിരുന്നു, ഫലം stm32 ന് മാത്രമല്ല, stm8 നും Milanda ചിപ്പുകൾക്കും പോലും പൂർണ്ണമായും പ്രവർത്തനക്ഷമമായ ഡീബഗ് മൊഡ്യൂളായിരുന്നു (ഇതുവരെ K1986BE92-ൽ മാത്രം പരീക്ഷിച്ചു, എന്നാൽ മറ്റുള്ളവയും ഇതായിരിക്കുമെന്ന് ഞാൻ കരുതുന്നു. നിർമ്മിക്കുകയും ഡീബഗ്ഗ് ചെയ്യുകയും ചെയ്തു).

പ്രധാന പ്രവർത്തനങ്ങൾ:

  • STM32 പ്രോഗ്രാമിംഗും ഡീബഗ്ഗിംഗും;
  • STM8 പ്രോഗ്രാമിംഗും ഡീബഗ്ഗിംഗും;
  • ARM മിലാൻഡർ പ്രോഗ്രാമിംഗും ഡീബഗ്ഗിംഗും.

പ്രോഗ്രാമിംഗ് ഇന്റർഫേസുകൾ:

  • SWD - 4 MHz വരെ;
  • JTAG;
  • നീന്തൽ.

പ്രോഗ്രാമർ തന്നെ മുകളിലുള്ള ഫോട്ടോയിൽ കാണാം. ബോർഡിലുടനീളം നീട്ടിയിരിക്കുന്ന വയറുകൾ ആവശ്യമായ എൽഇഡിയുടെ (ഇടത്) അഭാവവും ബോർഡുകൾക്ക് വൈദ്യുതി നൽകാതെ (വലത്) പ്രോഗ്രാം ചെയ്യേണ്ടതിന്റെ ആവശ്യകതയുമായി ബന്ധപ്പെട്ട തുടർന്നുള്ള പരിഷ്കാരങ്ങൾ മാത്രമാണ്.

എല്ലാ വികസന ബോർഡുകളിലും ഉപയോഗിക്കുന്ന stm32f103 കൺട്രോളറാണ് കോർ. ഉപകരണത്തിന്റെ ഇൻപുട്ടുകളിലും ഔട്ട്‌പുട്ടുകളിലും, ഒരു പ്രോഗ്രാം ചെയ്യാവുന്ന മൈക്രോകൺട്രോളർ കണക്റ്റുചെയ്യുന്നതിനുള്ള ഒരു കണക്ടർ എന്നാണ് ഞാൻ ഉദ്ദേശിക്കുന്നത്, സ്റ്റാറ്റിക്കിൽ നിന്ന് പരിരക്ഷിക്കുന്നതിന് ഡയോഡുകൾ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ട്, തിരഞ്ഞെടുത്ത ഡയോഡുകൾ ആവശ്യത്തിന് ചെറുതാണ്, പക്ഷേ എളുപ്പത്തിൽ ആക്‌സസ് ചെയ്യാനാകും, മാത്രമല്ല ആളുകൾക്ക് പോലും വളരെ ബുദ്ധിമുട്ടില്ലാതെ സോൾഡർ ചെയ്യാം. കാഴ്ചക്കുറവ്, എന്നിരുന്നാലും, ഞാൻ തന്നെ, രണ്ട് കണ്ണുകളിലും നിങ്ങളുടെ സ്വന്തം കാര്യങ്ങളെക്കുറിച്ച് പരാതിപ്പെടുന്നില്ല.

ഒരു കമ്പ്യൂട്ടറിലേക്ക് കണക്റ്റുചെയ്യുന്നതിനുള്ള ഒരു കണക്ടറായി MicroUSB ഉപയോഗിക്കുന്നു; അതിന്റെ മിനി സഹോദരനുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ അതിന്റെ ആധുനികത കാരണം മാത്രമാണ് ഈ തിരഞ്ഞെടുപ്പ് നടത്തിയത്. എനിക്ക് തന്നെ ബോർഡിൽ ഒരു മിനി ഉണ്ട്, ഞാൻ കൂട്ടിച്ചേർത്തപ്പോൾ ഉൾപ്പെടുത്തിയ മൈക്രോ ലഭ്യമല്ല.

അസംബ്ലിക്കും ഒരു ഷോർട്ട് സർക്യൂട്ട് പരിശോധിച്ചതിനും ശേഷം, ഞങ്ങൾ ഉപകരണത്തെ കമ്പ്യൂട്ടറിലേക്ക് കണക്റ്റുചെയ്‌ത് ഒന്നും സംഭവിക്കുന്നില്ലെന്ന് കാണുന്നു, പ്രോഗ്രാമർ ഒരു അജ്ഞാത ഉപകരണമായി നിർവചിച്ചിരിക്കുന്നതൊഴിച്ചാൽ, കാരണം ഫേംവെയറിന്റെ അഭാവമാണ്.

ഇത് പ്രവർത്തിക്കുന്നുവെന്ന് ഉറപ്പാക്കാൻ, ഞങ്ങൾ സോഫ്റ്റ്വെയർ മൈക്രോകൺട്രോളറിലേക്ക് ഫ്ലാഷ് ചെയ്യേണ്ടതുണ്ട്; ഇതിനായി ഞങ്ങൾക്ക് ഒരു usb-uart അഡാപ്റ്ററും ഒരു ബൂട്ട്ലോഡറും ഒരു ഫേംവെയർ യൂട്ടിലിറ്റിയും ആവശ്യമാണ്.

യൂട്ടിലിറ്റിയിലും അഡാപ്റ്ററിലും പ്രശ്‌നങ്ങളൊന്നുമില്ലെങ്കിൽ, ബൂട്ട്‌ലോഡറുമായി എല്ലാം കുറച്ച് വ്യത്യസ്തമാണ് - ഡീബഗ് ബോർഡുകളിലെ കൺട്രോളറുകളിലെ ഫേംവെയർ തന്നെ വായിക്കുന്നതിൽ നിന്ന് തടഞ്ഞതിനാൽ എനിക്ക് അത് നീക്കംചെയ്യാൻ കഴിഞ്ഞില്ല. ഭാഗ്യവശാൽ, ഇന്റർനെറ്റ് ഉള്ള ഒരു ആധുനിക ലോകത്താണ് നമ്മൾ ജീവിക്കുന്നത്.

നിരവധി ഫോറങ്ങളിൽ ഒന്നിൽ പരിഹാരം കണ്ടെത്തി - ഒരു ഫേംവെയർ ബൈനറി. ശരിയാണ്, ഒരു പ്രശ്നമുണ്ടായിരുന്നു, കൺട്രോളർ ഫ്ലാഷ് ചെയ്തതിന് ശേഷം, പ്രോഗ്രാമർ കണ്ടെത്തി, പക്ഷേ പ്രവർത്തിക്കാൻ ആഗ്രഹിച്ചില്ല, പക്ഷേ അത് st-link യൂട്ടിലിറ്റിയിലൂടെ എളുപ്പത്തിൽ ഫ്ലാഷ് ചെയ്തു, ഫേംവെയർ ഫയൽ വൃത്തിയാക്കാൻ തീരുമാനിച്ചു, അനാവശ്യമായ എല്ലാം നീക്കം ചെയ്തു, ബൂട്ട്ലോഡർ മാത്രം അവശേഷിക്കുന്നു.

നിങ്ങൾ ഊഹിക്കുന്നതുപോലെ, എല്ലാം പ്രവർത്തിച്ചു, ഇപ്പോൾ ബൂട്ട്ലോഡർ എടുക്കാം.

പൂരിപ്പിക്കുന്നതിന്, ഞങ്ങൾ കണക്റ്റർ പി 1 ഉപയോഗിക്കുന്നു, അവയിൽ 3, 4 എന്നിവ ഒരുമിച്ച് ബന്ധിപ്പിച്ചിരിക്കുന്നു, മൈക്രോകൺട്രോളറിനെ usart1 വഴി ബൂട്ട് മോഡിലേക്ക് മാറ്റുന്നു. ഞങ്ങൾ uart അഡാപ്റ്ററുകൾ ബന്ധിപ്പിച്ച് ഒരു USB കണക്റ്റർ വഴി പ്രോഗ്രാമർ ബോർഡിലേക്ക് വൈദ്യുതി വിതരണം ചെയ്യുന്നു.

യൂട്ടിലിറ്റിയിൽ, ഉപയോഗിക്കാനുള്ള സീരിയൽ പോർട്ട് തിരഞ്ഞെടുത്ത് ബാക്കിയുള്ള നിർദ്ദേശങ്ങൾ പാലിക്കുക. ചിത്രങ്ങളിൽ ഈ പ്രക്രിയ വിവരിക്കുന്നതിൽ അർത്ഥമില്ല - എല്ലാം വളരെ നിസ്സാരമാണ്.

കുറച്ച് ആളുകൾക്ക് അറിയാം, പ്രത്യേകിച്ച് STM32 മൈക്രോകൺട്രോളറുകൾ പഠിക്കാൻ തുടങ്ങുന്നവർക്ക്, ഒരു പ്രത്യേക പ്രോഗ്രാമർ ഇല്ലാതെ തന്നെ പ്രോഗ്രാം ചെയ്യാൻ കഴിയുമെന്ന്. നിങ്ങൾ ബിൽറ്റ്-ഇൻ ബൂട്ട്ലോഡർ വഴി കൺട്രോളർ ബൂട്ട് മോഡ് തിരഞ്ഞെടുക്കേണ്ടതുണ്ട്, UART വഴി കണക്റ്റുചെയ്ത് ആവശ്യമായ കോഡ് എഴുതുക.

ഇപ്പോൾ എല്ലാ കാര്യങ്ങളെക്കുറിച്ചും കൂടുതൽ വിശദമായി. മിക്ക STM32 കൺട്രോളറുകൾക്കും UART, SPI, I2C, CAN പ്രോട്ടോക്കോളുകൾ ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്ന ഒരു പ്രത്യേക മെമ്മറി ഏരിയയിൽ ബിൽറ്റ്-ഇൻ (നോൺ-ഇറേസബിൾ) ബൂട്ട്ലോഡർ ഉണ്ട്. തീർച്ചയായും, UART വഴി പ്രവർത്തിക്കുക എന്നതാണ് ഏറ്റവും എളുപ്പമുള്ള മാർഗം, കാരണം... ഇലക്ട്രോണിക്സ് കൈകാര്യം ചെയ്യുന്ന മിക്കവാറും എല്ലാവർക്കും അത് ഉണ്ട്, അതിനാൽ ഞങ്ങൾ അത് പരിഗണിക്കും.

BOOTx പിന്നുകളിൽ (ഒന്നോ അതിലധികമോ ആകാം) താഴ്ന്നതോ ഉയർന്നതോ ആയ ലെവൽ പ്രയോഗിച്ചാണ് കൺട്രോളർ ലോഡ് ചെയ്ത മെമ്മറി ഏരിയയുടെ തിരഞ്ഞെടുപ്പ് നടത്തുന്നത്. ഒരു നിർദ്ദിഷ്‌ട കൺട്രോളറിൽ ഒരു ബൂട്ട്‌ലോഡർ എങ്ങനെ തിരഞ്ഞെടുക്കാം എന്നതിനെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക്, AN2606 കാണുക. പ്രോഗ്രാമിംഗിനായി ഏത് കൺട്രോളർ ഇന്റർഫേസ് ഉപയോഗിക്കാമെന്നും AN2606 വ്യക്തമാക്കുന്നു. കൂടാതെ, കൺട്രോളറിലേക്ക് കോഡ് എഴുതാൻ, നിങ്ങൾക്ക് STM32 FlashLoader Demonstrator എന്ന ST വെബ്സൈറ്റിൽ നിന്ന് ഒരു ചെറിയ പ്രോഗ്രാം ആവശ്യമാണ്.

ശരി, ഈ അറിവ് എങ്ങനെ ഉപയോഗിക്കാമെന്ന് മനസിലാക്കാൻ, STM32F103C8T6B ഉള്ള ഒരു ബോർഡ് പ്രോഗ്രാം ചെയ്യാം.

കൺട്രോളർ ബൂട്ട് മോഡ് സജ്ജീകരിക്കുന്നതിന് ബോർഡിൽ ജമ്പറുകൾ ഉണ്ട്. നിർഭാഗ്യവശാൽ, അവ ഒപ്പിട്ടിട്ടില്ല, അതിനാൽ ഞങ്ങൾ മുകളിലുള്ള ഫോട്ടോ നോക്കി അവ അതേ രീതിയിൽ ഇൻസ്റ്റാൾ ചെയ്യുന്നു. ജമ്പറുകൾ BOOT0 "1" ആയും BOOT1 "0" ആയും സജ്ജീകരിക്കുന്നത് AN2606-ൽ പറഞ്ഞിരിക്കുന്നതുപോലെ ബിൽറ്റ്-ഇൻ ബൂട്ട്ലോഡർ സജീവമാക്കും. ഇപ്പോൾ നിങ്ങൾക്ക് വൈദ്യുതിയും RX, TX സിഗ്നൽ ലൈനുകളും ബന്ധിപ്പിക്കാൻ കഴിയും. RX, TX ലൈനുകൾ ക്രോസ്വൈസ് ആയി ബന്ധിപ്പിച്ചിട്ടുണ്ടെന്ന് മറക്കരുത്:

RX<--->TX

TX<--->RX


അടുത്തതായി, FlashLoader Demonstrator പ്രോഗ്രാം സമാരംഭിക്കുക. ആവശ്യമുള്ള COM പോർട്ട് തിരഞ്ഞെടുത്ത് അടുത്തത് ക്ലിക്കുചെയ്യുക. എല്ലാം ശരിയായി കണക്റ്റുചെയ്തിട്ടുണ്ടെങ്കിൽ, കണക്റ്റുചെയ്‌ത കൺട്രോളറിന് 64 KB മെമ്മറി ഉണ്ടെന്നും അത് റീഡ്-പ്രൊട്ടക്റ്റഡ് അല്ലെന്നും ഞങ്ങൾക്ക് ഒരു സന്ദേശം ലഭിക്കും.


അടുത്തത് ക്ലിക്ക് ചെയ്യുക. കൺട്രോളറിൽ ലഭ്യമായ മെമ്മറി പേജുകൾ ഉപയോഗിച്ച് ഒരു ഷീറ്റ് തുറക്കുന്നു, ഞങ്ങൾക്ക് അതിൽ താൽപ്പര്യമില്ല, അടുത്തത് വീണ്ടും ക്ലിക്കുചെയ്യുക. കൺട്രോളറിലെ പ്രവർത്തനങ്ങൾ തിരഞ്ഞെടുക്കാനുള്ള കഴിവോടെ ഒരു പേജ് തുറക്കുന്നു:
  • മായ്ക്കുക (മായ്ക്കുക)
  • ഉപകരണത്തിലേക്ക് ഡൗൺലോഡ് ചെയ്യുക (എംകെയിലേക്ക് ഫേംവെയർ അപ്‌ലോഡ് ചെയ്യുക)
  • ഉപകരണത്തിൽ നിന്ന് അപ്‌ലോഡ് ചെയ്യുക (എംകെയിൽ നിന്നുള്ള ഫേംവെയർ വായിക്കുക)
  • ഫ്ലാഷ് പരിരക്ഷ പ്രവർത്തനക്ഷമമാക്കുക/അപ്രാപ്തമാക്കുക (ഫ്ലാഷ് മെമ്മറി സംരക്ഷണം പ്രവർത്തനക്ഷമമാക്കുക/അപ്രാപ്തമാക്കുക)
  • എഡിറ്റ് ഓപ്ഷൻ ബൈറ്റുകൾ (മെമ്മറി സംരക്ഷണ എഡിറ്റിംഗ്)

മൂന്ന് ഡോട്ടുകളിൽ ക്ലിക്ക് ചെയ്യുക, ഞങ്ങളുടെ ഫയൽ “test_stm.hex” തിരഞ്ഞെടുക്കുക, ഡൗൺലോഡിന്റെ കൃത്യത പരിശോധിക്കാൻ “ആസ്റ്റർ ഡൗൺലോഡ് പരിശോധിക്കുക” എന്നതിന് അടുത്തുള്ള ബോക്‌സ് ചെക്കുചെയ്യുക, അതുപോലെ തന്നെ “ഉപയോക്തൃ പ്രോഗ്രാമിലേക്ക് പോകുക” അതുവഴി എംകെ ഉടൻ തന്നെ എക്‌സിക്യൂട്ട് ചെയ്യാൻ തുടങ്ങും. ഡൗൺലോഡ് പ്രക്രിയ പൂർത്തിയായതിന് ശേഷം ഡൗൺലോഡ് ചെയ്ത പ്രോഗ്രാം.