এটি কীভাবে কাজ করে তা শিখতে আপনি উপরের কোনওটি ব্যবহার করতে চান না। সম্পন্ন হয়ে একটি আর্ম ক্রস সংকলক এবং ডকুমেন্টেশন পান। কোডিং শুরু করুন। এই চিপগুলি সাধারণত প্রোগ্রাম করা সহজ। ডকুমেন্টেশন আপনাকে জানায় যে রেজিস্ট্রিগুলিতে কি বিট হয়।
এই / সমস্ত লাইব্রেরির উদ্দেশ্য আপনার কাছ থেকে সেই বোঝাপড়া / বোঝা / কাজ অপসারণ এবং এটিকে অ্যাপ্লিকেশন প্রোগ্রামিং অভিজ্ঞতার মতো একটি এপিকে কল করার মতো বোধ করা। যা ভাবেন অনেক লোক। আপনি এই লাইব্রেরিগুলি বোঝার জন্য সমস্ত উত্স ব্যবহার করতে পারেন, তবে এটির উন্নতি হওয়ার সাথে সাথে আপনি গ্রন্থাগারগুলিতে গর্ত এবং সমস্যাগুলি খুঁজে পান, কখনও কখনও খুব ভীতিকর কোড। কোড একসাথে টসড, সাধারণভাবে লেখা এবং মোটামুটি এক চিপ থেকে অন্য চিপে পোর্ট করা, সম্ভবত আপনার চিপগুলির বৈশিষ্ট্যগুলি সমর্থন করে ইত্যাদি supporting এবং তাদের সকলের ওভারহেডের অতিরিক্ত পরিমাণ রয়েছে। কাজের জন্য 10 থেকে 100 গুণ বেশি কোড, নিশ্চিত যে এটির প্রচুর পরিমাণ অপ্টিমাইজ হতে পারে তবে কেন এটি সেখানে প্রথম স্থানে রয়েছে?
আপনি নিজের হয়ে যান বা এই লাইব্রেরিগুলির মধ্যে যে কোনও একটি ব্যবহার করুন না কেন, আপনি যে লাইব্রেরিগুলি করছেন সেগুলি থেকে আপনি কী স্বাচ্ছন্দ্য বোধ করেন তা বোঝার জন্য আপনার এখনও উত্সের দিকে নজর দেওয়া উচিত, যদি তা বোঝা যায়, চিপের ডকুমেন্টেশন ইত্যাদির সাথে মেলে When ভুল হয়ে যায় সম্ভবত কারণ হিসাবে তাদের যতটা আপনার জিনিস খনন করতে হবে।
নোট করুন চিপ ডকগুলিও নিখুঁত নয়, এটি মজাদার একটি অংশ।
আমি কেন বুঝতে পারি না কেন বেয়ার মেটাল প্রোগ্রামিং সম্পর্কিত আলোচনায় সমাবেশ আসবে comes আপনি খুব সামান্য সমাবেশ দিয়ে যেতে পারেন। এই কর্টেক্স-এম চিপগুলির জন্য, প্রযুক্তিগতভাবে বুট করার জন্য আপনার কেবলমাত্র এএসএমের প্রয়োজন:
.globl _start
_start:
.word 0x20001000
.word main
আপনি ডেটা বা বিএস-এর উপর নির্ভর করতে পারবেন না এবং আপনি এএসএমের ন্যূনতম সাথে মূল থেকে ফিরে আসতে পারবেন না। তবে এটি হ'ল অসমটি আপনাকে খালি ধাতুর বেস্টের জন্য প্রয়োজন। এখন আপনি যদি বাধা দিতে চান আপনার ভেক্টর টেবিলটিতে আরও প্রবেশের প্রয়োজন। আরও। ওয়ার্ড লাইন। আমি আরও asm বাঞ্ছনীয়, তবে সম্ভবত 10 বা 20 লাইন বেশি।
এটি সাধারণত সমস্ত asm আমি ব্যবহার করি।
.cpu cortex-m0
.thumb
.thumb_func
.global _start
_start:
stacktop: .word 0x20001000
.word reset
.word hang
.word hang
.word hang
.word hang
.word hang
.word hang
.word hang
.word hang
.word hang
.word hang
.word hang
.word hang
.word hang
.word hang
.thumb_func
reset:
bl notmain
b hang
.thumb_func
hang: b .
.align
.thumb_func
.globl PUT16
PUT16:
strh r1,[r0]
bx lr
.thumb_func
.globl PUT32
PUT32:
str r1,[r0]
bx lr
.thumb_func
.globl GET32
GET32:
ldr r0,[r0]
bx lr
.thumb_func
.globl GET16
GET16:
ldrh r0,[r0]
bx lr
.thumb_func
.globl dummy
dummy:
bx lr
.end
হ্যাঁ এটি কর্টেক্স-এম0 বলেছেন তবে এটি আমার এম 4 কোডের জন্য প্রকৃত বুটস্ট্র্যাপ। আমি এটি থাম্ব 2 না থাম্ব হতে পছন্দ করি। এবং আমি এই কোডটি কেবল একটি কর্টেক্স-এম থেকে অন্যটিতে পুনরায় ব্যবহার করেছি, স্ট্যাক পয়েন্টার ঠিকানা প্রয়োজন অনুসারে পরিবর্তন করেছি, সুতরাং এটি এম 0, এম 3 এবং এম 4 এর জন্য কাজ করে। আমার কাছে এখনও এম 7 নেই বা আমি এটি নিয়ে আরও গবেষণা করে নি।
নির্দিষ্ট নির্দেশাবলীর প্রয়োজন অনুসারে এফপিইউ সক্ষম করার জন্য আরও কিছু লাইন অ্যা্যাসেমের প্রয়োজন হতে পারে। তবে বিষয়টি হ'ল নিম্ন স্তরের প্রোগ্রামিং এবং asm গুলিয়ে ফেলবে না। সি আপনার কাছে চিপটি কনফিগার করার পাশাপাশি একটি অ্যাপ্লিকেশন লেখার দরকার রয়েছে। আপনি যে লাইব্রেরিগুলির কথা বলছেন সেগুলি সিএম এএসমে নয়, তাই স্পষ্টতই তাদের এএসএম ব্যবহার করার দরকার নেই।
আপনি যদি অভ্যন্তরীণ কাজগুলি শিখতে চান তবে নিজের কোডটি লিখুন। রেফারেন্স হিসাবে এই লাইব্রেরি ব্যবহার করবেন না। কখনও কখনও তাদের কোডটি পড়ার চেষ্টা করার চেয়ে এটিকে হ্যাক করা সহজ। (কেবল এসটি নয়, সমস্ত বিক্রেতাদের মধ্যে। বিক্রেতাদের মধ্যে একটির কোডের একটি লাইন ছিল তাই উদ্বেগজনক আমি এটি একটি সাক্ষাত্কারের প্রশ্ন হিসাবে ব্যবহার করি, না, এটি এখানে পোস্ট করা যাচ্ছে না)।
এসটি স্পষ্টতই তবে অন্যান্য বিক্রেতাদের পাশাপাশি শক্তি সঞ্চয় করতে, চিপের কিছু অংশের জন্য ঘড়ি সক্ষম করে রাখে, তাই আপনি ভিতরে anুকে লিডকে ঝাপটানোর চেষ্টা করার আগে আপনাকে সেই জিপিও ব্লকের জন্য সক্ষম বিটটি খুঁজে বের করতে হবে এবং এটি বেরিয়ে আসে কিনা তা দেখতে হবে need পুনরায় সেট করার সক্ষম, যদি তা সক্ষম না হয় তবে জিপিও লজিকের সাথে একটি ঘড়ি সক্ষম না করে কথা বলা কেবল প্রসেসরটিকে স্তব্ধ করে দেয় কারণ এটি যুক্তি থেকে কোনও প্রতিক্রিয়া অপেক্ষা করছে যা কখনই সাড়া দেয় না। তারা এই সক্ষমগুলির সম্পর্কে আপনাকে সর্বদা জানায় না। একবার সক্ষম হয়ে গেলে তারা কখনও কখনও কোনও নির্দিষ্ট পেরিফেরিয়াল জন্য আপনাকে ডিআইএস দিয়ে যায়। এসটি ডকস বেশ ভাল। মাইক্রোচিপ থেকে আগত যা ডকুমেন্টেশনের জন্য বেশ খারাপ গ্রেড পেয়েছে, আপনার কোনও সমস্যা হওয়া উচিত নয়।
Libraries/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h
বাDrivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h
যথাক্রমে পাওয়া যায় ।