இதர

மைக்ரோகண்ட்ரோலர்களில் குறியீடு உகப்பாக்கம்

நூலாசிரியர்: Laura McKinney
உருவாக்கிய தேதி: 4 ஏப்ரல் 2021
புதுப்பிப்பு தேதி: 16 மே 2024
Anonim
மைக்ரோகண்ட்ரோலர்களுக்கான சியை மேம்படுத்துதல் - சிறந்த நடைமுறைகள் - கேம் ராஜ், காம்காஸ்ட் RDK
காணொளி: மைக்ரோகண்ட்ரோலர்களுக்கான சியை மேம்படுத்துதல் - சிறந்த நடைமுறைகள் - கேம் ராஜ், காம்காஸ்ட் RDK

உள்ளடக்கம்

ஆசிரியர் தனது இறுதி ஆண்டு பொறியியல் திட்டத்தை dsPic மைக்ரோ கன்ட்ரோலர்களுடன் முடித்தார், இந்த சாதனங்களில் விரிவான நுண்ணறிவைப் பெற்றார்.

மைக்ரோகண்ட்ரோலரின் சி-மொழி குறியீடு சில மேம்பட்ட பயன்பாடுகளில் தேர்வுமுறை தேவைப்படலாம். இரண்டு முக்கியமான விஷயங்களைக் குறைக்க இந்த குறியீடு தேர்வுமுறை நடைமுறையில் உள்ளது:

  1. குறியீடு அளவு: மைக்ரோகண்ட்ரோலர்கள் அவற்றின் ரேமின் குறைந்த அளவு காரணமாக வரையறுக்கப்பட்ட தரவு மற்றும் வழிமுறைகளை சேமிக்க முடியும். எனவே குறியீட்டை உகந்ததாக்க வேண்டும், இதனால் கிடைக்கக்கூடிய அறிவுறுத்தல் மற்றும் தரவு நினைவகம் மிகவும் திறமையான முறையில் பயன்படுத்தப்படலாம்.
  2. குறியீடு செயல்படுத்தும் நேரம்: மைக்ரோகண்ட்ரோலர்கள் என்பது ஒரு நேரத்தில் ஒரு வழிமுறையை இயக்கும் தொடர்ச்சியான சாதனங்கள். ஒவ்வொரு சட்டசபை அறிவுறுத்தலும் தன்னை இயக்க ஒரு குறிப்பிட்ட எண்ணிக்கையிலான கடிகார சுழற்சிகளைப் பயன்படுத்துகிறது. ஆகையால், குறைந்த பட்ச கடிகார சுழற்சிகள் அல்லது சட்டசபை வழிமுறைகளில் தேவையான பணியைச் செய்கிறது என்பதை உறுதிப்படுத்த குறியீடு உகந்ததாக இருக்க வேண்டும். ஒரு குறியீடு பயன்படுத்தும் குறைந்த கடிகார சுழற்சிகள், அது வேகமாக இயங்கும். செயலாக்க நேரம் குறைக்கப்படுவதால் பயன்பாடுகள் வேகமாக இயங்கக்கூடும் என்பதே இதன் பொருள்.

மைக்ரோ-கன்ட்ரோலர் குறியீட்டின் அளவு மற்றும் செயல்பாட்டு நேரத்தைக் குறைக்கப் பயன்படும் உதவிக்குறிப்புகள் மற்றும் தந்திரங்களை இந்த கட்டுரை முன்வைக்கிறது.


மைக்ரோசிப்பின் MplabX மேம்பாட்டு IDE பொருத்தமான இடங்களில் எடுத்துக்காட்டுகளை நிரூபிக்க பயன்படுத்தப்படும்.

குறியீடு செயல்படுத்தும் நேரத்தை எவ்வாறு சோதனை முறையில் அளவிடுவது

நிகழ்நேரத்தில் இயக்க உங்கள் குறியீடு உண்மையில் எவ்வளவு நேரம் எடுக்கும் என்பதைப் பற்றிய யோசனையைப் பெற, நீங்கள் அதை சோதனை ரீதியாக அளவிட வேண்டும். குறியீடு செயல்படுத்தும் நேரத்தை அளவிட ஒரு தர்க்க பகுப்பாய்வி வசதியாக பயன்படுத்தப்படலாம் மற்றும் ஆர்வமுள்ளவர்கள் மின்னஞ்சலில் என்னிடமிருந்து இந்த செயல்முறையைப் பற்றி விசாரிக்கலாம். இதை தவிர:

  • சில கம்பைலர்கள் ஒரு குறியீடு உட்கொள்ளும் கடிகார சுழற்சிகளை எண்ணும் திறனைக் கொண்டுள்ளன.
  • சில பிழைத்திருத்தங்கள் மைக்ரோசிப்பிலிருந்து வரும் ஐசிடி 3 ஒரு ஸ்டாப்வாட்ச் மூலம் செயல்பாட்டு நேரத்தை நேரடியாக அளவிட முடியும்.

1. உங்கள் மைக்ரோகண்ட்ரோலரின் செயலாக்க சக்தி மற்றும் நினைவக அளவை அறிந்து கொள்ளுங்கள்

இது எப்போதும் கடிகார அதிர்வெண் (Mhz) அல்ல, இது ஒரு மைக்ரோ-கன்ட்ரோலரின் செயலாக்க வேகத்தின் உண்மையான படத்தைக் கொடுக்கிறது, மிகவும் யதார்த்தமான நடவடிக்கை MIPS (வினாடிக்கு மெகா அறிவுறுத்தல்கள்) அல்லது MCU ஒரு நொடியில் செயல்படுத்தக்கூடிய வழிமுறைகளின் எண்ணிக்கை.

MCU கள் பொதுவாக உயர்நிலை பிரிவில் 60-70 MIPS முதல் 20 MIPS 8-bit AVR கள் வரை இருக்கும். உயர் MIPS மைக்ரோ-கன்ட்ரோலர் அதிக விலை கொண்டதாக இருக்கும், பின்னர் குறைந்த விலை சாதனம் எனவே இங்கே நீங்கள் செலவு மற்றும் செயலாக்க வேகத்திற்கு இடையில் ஒரு பரிமாற்றத்தைக் கொண்டிருக்கிறீர்கள்.


மைக்ரோ-கன்ட்ரோலர்கள் தரவு மற்றும் நிரல் குறியீட்டை சேமிக்க தனி நினைவகத்தைக் கொண்டுள்ளன. அவை இரண்டின் அளவையும் தரவுத்தாள் மூலம் காணலாம். உங்கள் குறியீடு கணிசமாக பெரியதாக இருந்தால் பெரிய நினைவக அளவு கொண்ட MCU உங்களுக்கு தேவைப்படலாம்.

2. குறியீடு அளவில் உகப்பாக்கத்திற்கான மாறிகள் தேர்வு

மைக்ரோ-கன்ட்ரோலர்கள் வரையறுக்கப்பட்ட தரவு நினைவகத்தைக் கொண்டிருக்கின்றன, பொதுவாக அவை 1 முதல் 4 கிபைட் வரை இருக்கும். இந்த வழக்கில் சேமிக்கப்படும் தேதியின் எதிர்பார்க்கப்படும் வரம்பிற்கு ஏற்ப மிகவும் பொருத்தமான மாறி வகையைத் தேர்ந்தெடுப்பது புத்திசாலித்தனம். கீழே உள்ள அட்டவணை இந்த மாறிகளை சுருக்கமாகக் கூறுகிறது:

சி-மொழியில் பயன்படுத்தப்படும் மாறிகளின் சுருக்கம்.

மாறி வகைபைட்டுகளில் அளவுசரகம்

bool

1

0 அல்லது 1 மட்டும்

கரி

1


-128 முதல் 127 வரை

எண்ணாக

2

-32,768 முதல் 32,767 வரை

கையொப்பமிடாத எண்ணாக

2

0 முதல் 65,535 வரை

நீண்டது

4

-2,147,483,648 முதல் 2,147,483,647 வரை

மிதவை

4

6 தசம இடங்கள் வரை துல்லியமானது

இரட்டை

8

15 தசம இடங்கள் வரை துல்லியமானது

நீண்ட இரட்டை

10

19 தசம இடங்கள் வரை துல்லியமானது

உதாரணமாக:

  • எக்ஸ் மற்றும் ஒய் ஆகிய இரண்டு மாறிகள் சேர்க்கப்பட வேண்டும், இதன் விளைவாக இசட் இல் சேமிக்கப்பட வேண்டும், ஆனால் இசின் மதிப்பு அதிகமாக இருக்கும் என எதிர்பார்க்கப்படுகிறது, பின்னர் 65,535 கூடுதலாக இருந்தால், இசட் நீண்டதாக அறிவிக்கப்படலாம் மற்றும் எக்ஸ் மற்றும் ஒய் கையொப்பமிடப்படாததாக அறிவிக்கப்படலாம் int, X மற்றும் Y இன் மதிப்புகள் எதிர்மறையாக இருக்கும் என்று எதிர்பார்க்கப்படுவதில்லை. இது தரவு நினைவகத்தில் 04 பைட்டுகளை சேமிக்கும், இல்லையெனில் அனைத்து மாறிகள் நீண்ட காலமாக அறிவிக்கப்பட்டிருந்தால் பயன்படுத்தப்படலாம்.
  • எக்ஸ் மற்றும் ஒய் ஆகிய இரண்டு மாறிகள், அதன் மதிப்புகள் முழு எண்களில் இருக்கும் என்று எதிர்பார்க்கப்படுகிறது, ஆனால் பிரிவின் விளைவாக ஒரு தசமத்தை தரக்கூடும், பின்னர் எக்ஸ் மற்றும் ஒய் எண்ணாக அறிவிக்கப்படலாம், இதன் விளைவாக மிதவை அல்லது இரட்டிப்பாக அறிவிக்கப்படலாம் தேவையான துல்லியம்.

அதிக எண்ணிக்கையிலான கூறுகளைக் கொண்ட வரிசைகளை அறிவிக்கும்போது தரவு வகையின் தேர்வு முக்கியமானதாக இருக்கலாம்.

3. குறியீடு செயல்படுத்தும் நேரத்தில் உகப்பாக்கத்திற்கான மாறிகள் தேர்வு

  • மிதக்கும்-புள்ளி கணக்கீடுகள் நிலையான-புள்ளி கணக்கீடுகளை விட அதிக நேரம் எடுக்கும் என்பது நிறுவப்பட்ட உண்மை. ஒரு தசம மதிப்பு தேவையில்லாத மிதக்கும்-புள்ளி மாறியைப் பயன்படுத்த வேண்டாம். கையொப்பமிடப்படாத முழு எண்களுடன் முடிந்தவரை வேலை செய்யுங்கள்.
  • உலகளாவிய மாறிகள் உள்ளூர் மாறிகள் விரும்பப்படுகின்றன. ஒரு செயல்பாட்டில் மட்டுமே ஒரு மாறி பயன்படுத்தப்பட்டால், அது அந்த செயல்பாட்டில் அறிவிக்கப்பட வேண்டும், ஏனெனில் உலகளாவிய மாறிகளை அணுகுவது உள்ளூர் மாறிகள் விட மெதுவாக இருக்கும்.
  • ஒரு 8-பிட் MCU ஒரு பைட்-அளவிலான மாறியை அணுகுவதற்கு விரைவாகக் கண்டுபிடிக்கும், மேலும் 16-பிட் MCU ஆனது 2-பைட் மாறியை அணுகுவதை எளிதாகக் கண்டுபிடிக்கும்.

4. எண்கணித செயல்பாடுகளை மேம்படுத்துதல்

எண்கணித செயல்பாடுகளை பின்வரும் வழிகளில் மேம்படுத்தலாம்.

  1. ஒரு சைன் அல்லது வேறு எந்த முக்கோணவியல் செயல்பாடு அல்லது குறியீட்டில் முன்பே அறியக்கூடிய வேறு எந்த செயல்பாட்டையும் மதிப்பிடுவதற்கு பதிலாக முன் கணக்கிடப்பட்ட மதிப்புகளின் பார்வை அட்டவணைகளைப் பயன்படுத்தவும்.
  2. ஒரு சைன் லுக்-அப் அட்டவணை ஏற்கனவே நினைவகத்தில் சேமிக்கப்பட்டிருந்தால், 90 டிகிரிக்கு சமமான வரிசை சுட்டிக்காட்டி முன்னேறுவதன் மூலம் ஒரு கொசைன் மதிப்பீடு செய்யப்படலாம்.
  3. நான்கு எண்கணித செயல்பாடுகளில், பிரிவு மற்றும் பெருக்கல் அதிக செயலாக்க நேரத்தை எடுத்துக்கொள்கின்றன, நடைமுறையில் இது நூற்றுக்கணக்கான மைக்ரோ விநாடிகள் அல்லது மிதக்கும்-புள்ளி மதிப்புகளின் விஷயத்தில் இருக்கலாம்.
  4. பிரிவு மற்றும் பெருக்கலுக்கு பதிலாக பிட் ஷிப்ட் வழிமுறைகளைப் பயன்படுத்தவும். ஒரு சரியான மாற்ற வழிமுறை 3 ஆல் வகுக்க உதவுகிறது3 இடது ஷிப்ட் அறிவுறுத்தலாக 1 ஐ 2 ஆல் பெருக்க உதவும்1.

5. தீவிர கணக்கீடுகளுக்கு டிஎஸ்பி திறன் கொண்ட மைக்ரோகண்ட்ரோலரைப் பயன்படுத்தவும்

சில மைக்ரோ-கன்ட்ரோலர்களில் ஒரு டிஎஸ்பி செயலாக்க அலகு உள்ளது, பின்னர் வழக்கமான ALU ஆனது அவற்றின் கட்டமைப்பில் கட்டமைக்கப்பட்டுள்ளது. இந்த டிஎஸ்பி இயந்திரம் மிகக் குறைந்த எண்ணிக்கையிலான கடிகார சுழற்சிகளில் (பெரும்பாலான சந்தர்ப்பங்களில் ஒன்று) மிக விரைவாக எண்கணிதக் கணக்கீடுகளைச் செய்ய உதவுகிறது.

ஒரு டிஎஸ்பி செயலி விரைவாகச் செய்யக்கூடிய வழிமுறைகள், பின்னர் ஒரு ALU:

  • பிட் ஷிப்ட் மற்றும் சுழற்று வழிமுறைகள்.
  • பெருக்கங்கள், பிரிவுகள் மற்றும் பிற எண்கணித செயல்பாடுகள்.
  • சைன்கள் மற்றும் பிற முக்கோணவியல் செயல்பாடுகளை மதிப்பீடு செய்தல்.
  • அனைத்து டிஎஸ்பி செயல்பாடுகளான எஃப்எஃப்டி, டிஎஃப்டி, கன்வல்யூஷன் மற்றும் எஃப்ஐஆர் வடிகட்டுதல்.

மைக்ரோகண்ட்ரோலரின் டிஎஸ்பி இயந்திரத்தைப் பயன்படுத்துவதற்கு இது தேவைப்படுகிறது:

  • இந்த திட்டத்தில் தனி டிஎஸ்பி நூலகங்கள் இணைக்கப்பட்டுள்ளன.
  • செயல்பாடுகளின் பெயர்கள் சி-மொழியின் நிலையான கணித நூலகத்திலிருந்து வேறுபடுகின்றன. இந்த நூலகங்கள் மற்றும் செயல்பாடுகளின் ஆவணங்களை அந்தந்த உற்பத்தியாளர்கள் வலைத்தளத்திலிருந்து பெறலாம்.
  • டிஎஸ்பி இயந்திரம் வேறுபட்ட மாறி வகை 'பின்னம்' ஐப் பயன்படுத்துகிறது. Dsp நூலக செயல்பாடுகளுடன் தொடர்வதற்கு முன் பகுதியளவு வகை மாறிகள் எவ்வாறு பயன்படுத்துவது என்பதை அறிக.

நிலையான கணித நூலக செயல்பாடுகள் டிஎஸ்பி இயந்திரத்தை செயல்படுத்தாது, ஏனெனில் அவை ALU சட்டசபை வழிமுறைகளில் மொழிபெயர்க்கப்படுகின்றன.

6. குறுக்கீடுகளுடன் வேலை செய்யுங்கள்

குறிப்பிட்ட செயல்பாடுகளைச் செய்ய குறுக்கீடுகளைப் பயன்படுத்தவும்:

  • ADC மதிப்புகளைப் படித்தல்.
  • UART இலிருந்து அனுப்புதல் மற்றும் பெறுதல்.
  • PWM கடமை சுழற்சி பதிவேடுகளைப் புதுப்பித்தல்.
  • CAN அல்லது I2C தொடர்பு.

குறுக்கீடுகள் இந்த செயல்பாடுகளை ஒரு செயல்பாட்டு அழைப்பு அல்லது இன்லைன் குறியீட்டின் மூலம் பிரதான உடலில் செய்வதை ஒப்பிடுகையில் விரைவாக சேவை செய்யும்.

குறுக்கீடுகள் தேவைப்படும்போது மட்டுமே தூண்டப்படும், அதேசமயம் பிரதான உடலில் குறியிடப்பட்டால், குறியீடு ஒவ்வொரு (1) சுழற்சியின் ஒவ்வொரு மறு செய்கையிலும் செயல்படும்.

7. கிடைக்கக்கூடிய சிறந்த கம்பைலர்களைப் பயன்படுத்துங்கள்

ஒழுங்காக உள்ளமைக்கப்பட்டால், சி-மொழியிலிருந்து சட்டசபை மொழிக்கு குறியீட்டை மொழிபெயர்க்கும்போது மேலே விவாதிக்கப்பட்ட சில மேம்படுத்தல்களை கம்பைலர்கள் தானாக செயல்படுத்த முடியும். உங்கள் கம்பைலரில் விருப்பங்களை மேம்படுத்துவதைத் தேடுங்கள், முடிந்தால் கம்பைலர்களின் தொழில்முறை பதிப்புகளுக்கு மேம்படுத்தலாம், ஏனெனில் அவை மிகவும் சக்திவாய்ந்த குறியீடு உகப்பாக்கிகள்.

8. நிபந்தனை அறிக்கைகளை புத்திசாலித்தனமாகப் பயன்படுத்துங்கள்

  • தொடர்ச்சியான if-else அறிக்கைகளைப் பயன்படுத்தும் போது மிகவும் சாத்தியமான நிலையை முதலில் வைத்திருங்கள். இந்த வழியில் MCU உண்மையான நிலையைக் கண்டறிந்த பிறகு எல்லா நிபந்தனைகளையும் ஸ்கேன் செய்ய வேண்டியதில்லை.
  • ஒரு சுவிட்ச்-கேஸ் அறிக்கை பொதுவாக if-else என்றால் வேகமாக இருக்கும்.
  • தொடர்ச்சியான அறிக்கைகளுக்கு பதிலாக உள்ளமைக்கப்பட்ட if-else அறிக்கைகளைப் பயன்படுத்தவும். மோசமான (கடைசி) நிலைக்கு உகந்ததாக்க பல அறிக்கைகளைக் கொண்ட ஒரு தொகுதி வேறு சிறிய கிளைகளாக பிரிக்கப்படலாம்.

9. இன்லைன் செயல்பாடுகளைப் பயன்படுத்தவும்

குறியீட்டில் ஒரு முறை மட்டுமே பயன்படுத்த வேண்டிய செயல்பாடுகள் நிலையானவை என அறிவிக்கப்படலாம். இது கம்பைலர் அந்த செயல்பாட்டை இன்லைன் செயல்பாட்டிற்கு மேம்படுத்தும், எனவே செயல்பாட்டு அழைப்பிற்கு எந்த சட்டசபை குறியீடும் மொழிபெயர்க்கப்படாது.

  • ஒரு செயல்பாடு 'நிலையான' என்ற முக்கிய சொல்லைப் பயன்படுத்தி இன்லைனில் அறிவிக்கப்படலாம்.

10. குறைக்கப்பட்ட சுழல்களைப் பயன்படுத்துங்கள்

அதிகரித்த வளையத்துடன் ஒப்பிடும்போது குறைக்கப்பட்ட வளையமானது குறைந்த சட்டசபை குறியீட்டை உருவாக்கும்.

ஏனென்றால், ஒரு சுழற்சி சுழற்சியில், லூப் குறியீட்டை அதிகபட்ச மதிப்பை அடைகிறதா என்று சோதிக்க ஒவ்வொரு வளையத்திலும் அதிகபட்ச மதிப்புடன் லூப் குறியீட்டை ஒப்பிட்டுப் பார்க்க ஒரு ஒப்பீட்டு வழிமுறை தேவைப்படுகிறது. குறைப்பு வளையத்திற்கு மாறாக, இந்த ஒப்பீடு இனி தேவையில்லை, ஏனெனில் லூப் குறியீட்டின் குறைக்கப்பட்ட முடிவு பூஜ்ஜியத்தை அடைந்தால் SREG இல் பூஜ்ஜியக் கொடியை அமைக்கும்.

லூப் நூறு மடங்கு மீண்டும் செய்ய வேண்டியிருப்பதால், லூப்பிலிருந்து ஒரு அறிவுறுத்தலைக் குறைப்பது நூறு மடங்கு செயல்படுத்தப்படுவதைத் தவிர்க்கும், எனவே லூப் பல முறை மீண்டும் செய்ய வேண்டியிருக்கும் போது இதன் தாக்கம் மிகவும் குறிப்பிடத்தக்கதாக இருக்கும்.

மடக்குதல்

இந்த உதவிக்குறிப்புகள் உதவியாக இருக்கலாம், ஆனால் அவற்றின் உண்மையான பயன்பாடு மற்றும் ஆற்றல் புரோகிராமரின் திறமை மற்றும் அவரது குறியீட்டில் அவர் வைத்திருக்கும் கட்டளையைப் பொறுத்தது. நினைவில் கொள்ளுங்கள், நிரலின் அளவு எப்போதும் செயல்பாட்டு நேரங்களை தீர்மானிக்காது, சில அறிவுறுத்தல்கள் அதிக கடிகார சுழற்சிகளை உட்கொள்ளக்கூடும், மற்றொன்று நிரலின் திறன்கள் மீண்டும் தங்கள் பங்கை வகிக்க வேண்டும்.

இந்த கட்டுரை ஆசிரியரின் சிறந்த அறிவுக்கு துல்லியமானது மற்றும் உண்மை. உள்ளடக்கம் தகவல் அல்லது பொழுதுபோக்கு நோக்கங்களுக்காக மட்டுமே மற்றும் வணிக, நிதி, சட்ட அல்லது தொழில்நுட்ப விஷயங்களில் தனிப்பட்ட ஆலோசனை அல்லது தொழில்முறை ஆலோசனைகளுக்கு மாற்றாக இருக்காது.

புதிய கட்டுரைகள்

சோவியத்

சென்ஹைசர் அம்பியோ விமர்சனம்
கணினிகள்

சென்ஹைசர் அம்பியோ விமர்சனம்

மார்கஸ் ஹேகன் கொலம்பியா பல்கலைக்கழகத்தைச் சேர்ந்த 24 வயதான பத்திரிகை மாணவர்.ஸ்மார்ட்போன்கள் உண்மையிலேயே பிரபலப்படுத்திய ஒன்று இருந்தால், அது எல்லாவற்றையும் பற்றிய புகைப்படங்களையும் வீடியோக்களையும் எடு...
ஒரு விவிண்ட் ஒப்பந்தத்தை ரத்து செய்வது எப்படி, ஒரு புகாரை தாக்கல் செய்வது, மற்றும் வழங்குநர்களை மாற்றுவது
இணையதளம்

ஒரு விவிண்ட் ஒப்பந்தத்தை ரத்து செய்வது எப்படி, ஒரு புகாரை தாக்கல் செய்வது, மற்றும் வழங்குநர்களை மாற்றுவது

உங்கள் குழு, சென்சார்கள், கியர் அல்லது கண்காணிப்பு விருப்பங்களுடன் உங்களுக்கு உதவி தேவைப்பட்டால், DIY மன்றங்களைப் பார்வையிட மறக்காதீர்கள்.ஸ்கை பேனல் மற்றும் கோகண்ட்ரோல் பேனல் இரண்டுமே 2 ஜிஐஜி சென்சார்...