আমি এখন অনেক, বহু বছর ধরে বিভিন্ন মাইক্রোকন্ট্রোলার এবং মাইক্রোপ্রসেসার ব্যবহার করছি তবে মনে হচ্ছে আমি কিনেটিস কেই সিরিজটি (বিশেষত S9KEAZN64AMLC) দ্বারা স্তব্ধ হয়েছি।
জানুয়ারী 17, 2015 টিএল; ডিআর:
ফ্রিস্কেল নিশ্চিত করেছে যে তাদের কিনেটিস ডিজাইন স্টুডিও সফ্টওয়্যারটির v2.0.0 এই ডিভাইসটির সাথে (তাদের নিজস্ব টিআরকে-কেইএ 64৪ ev বিভক্ত বোর্ড সহ) কাজ করে না। তারা আপাতত কোডওয়ারিওর এমসিইউ ভি 10.6 ব্যবহার করার পরামর্শ দিচ্ছেন।
সেগ্রার v4.96a প্রকাশ করেছে ("একটি" গুরুত্বপূর্ণ, আমি v4.96 ব্যবহার করছিলাম) যা সমস্যাটিকে সংশোধন করে এবং আপনাকে কেডিএস সহ একটি সেগার জে-লিংক লাইট কর্টেক্স এম ডিবাগার বোর্ড ব্যবহার করার অনুমতি দেয় এবং পুরো প্রোগ্রাম / ডিবাগের ক্ষমতা রাখে।
আগে Segger v4.96a মুক্তি আমি ফার্মওয়্যার এটা দিয়ে দিয়ে আসে OpenSDA reflashing দ্বারা ফ্রীস্কেল এর সস্তা ($ 15) FRDM-KL25Z Eval বোর্ডে OpenSDA ডিবাগার reprogramming দ্বারা চিপ ফ্ল্যাশ পাবে পরিচালিত USBDM (v4.10.6.240 ব্যবহার করে)। আমি তখন ইউএসবিডিএম এর স্ট্যান্ডসোন "এআরএম প্রোগ্রামার" সফ্টওয়্যার ব্যবহার করি। ডিবাগিংয়ের কাজ করার চেষ্টা করার জন্য আমি খুব বেশি সময় ব্যয় করি নি, কারণ "ওল্ডস্কুল" ডিবাগিংয়ের প্রয়োজন না হওয়ার জন্য আমি যথেষ্ট দক্ষ am দয়া করে নিশ্চিত করুন যে আপনি বোর্ডের লক্ষ্য কেএল 25 এ "সৌম্য" প্রোগ্রামটি ফ্ল্যাশ করেছেন বা এটি প্রোগ্রামিংয়ে হস্তক্ষেপ করতে পারে যেহেতু অন-বোর্ড টার্গেট কেএল 25 এর রিসেট লাইনটি এখনও জে 11 কাটের সাথে ওপেনএসডিএ ডিবাগারের সাথে সংযুক্ত রয়েছে (কীথ ওয়াকেহমের ব্লগ পোস্ট দেখুন) , নীচে লিঙ্ক করা)।
সমস্যাটি নির্ধারণ করতে এবং ইমেলের মাধ্যমে আমার অনুসন্ধানগুলি নিশ্চিত করতে খুব কৃপায়ভাবে আমাকে সহায়তা করার জন্য এরিচ স্টাইজারকে একটি বড় ধন্যবাদ ।
এখন আমাদের নিয়মিত নির্ধারিত প্রশ্নে ফিরে আসুন:
আমি একটি নির্বোধ-সহজ 3.3V ব্রেকআউট বোর্ড তৈরি করেছি। এটি পিটিএতে কিছু এলইডি পেয়েছে, পিটিসিতে একটি ইউআরটি সংযোগ এবং এসডাব্লুডি লাইনগুলি তাদের উত্সর্গীকৃত লাইনে রয়েছে। আক্ষরিকভাবে এই বোর্ড সম্পর্কে অভিনব বা মজার কিছুই নেই।
আমি কর্টেক্স-এম এর জন্য জে-লিংক লাইট ব্যবহার করছি (জে-লিংক লাইট কর্টেক্স এম -9, https://www.segger.com/jlink-lite-cortexm.html দেখুন ) এবং ওএসএক্স এবং উইন্ডোজ উভয়েরই অধীনে আমি পেয়েছি একই ফলস্বরূপ: জে-লিঙ্ক কমান্ডার ইউটিলিটি চিপটি সনাক্ত করতে পারে, আমি এসআরএমে পড়তে এবং লিখতে পারি এবং ম্যানুয়াল পঠিত পেরিফেরিয়ালগুলির সাথে চারপাশে খেলতে পারি এবং সঠিক মেমরি-ম্যাপযুক্ত I / O ঠিকানায় লিখতে পারি। আমি যখন ডিভাইসটি ফ্ল্যাশ করার চেষ্টা করি তবে এটি ব্যর্থ হয়।
$ JLinkExe
SEGGER J-Link Commander V4.94c ('?' for help)
Compiled Oct 31 2014 20:08:55
DLL version V4.94c, compiled Oct 31 2014 20:08:48
Firmware: J-Link Lite-Cortex-M V8 compiled Jul 17 2014 11:40:12
Hardware: V8.00
S/N: 518107921
Feature(s): GDB
VTarget = 3.332V
Info: Could not measure total IR len. TDO is constant high.
Info: Could not measure total IR len. TDO is constant high.
No devices found on JTAG chain. Trying to find device on SWD.
Info: Found SWD-DP with ID 0x0BC11477
Info: Found Cortex-M0 r0p0, Little endian.
Info: FPUnit: 2 code (BP) slots and 0 literal slots
Cortex-M0 identified.
Target interface speed: 100 kHz
J-Link>device skeazn64xxx2
Info: Device "SKEAZN64XXX2" selected (64 KB flash, 4 KB RAM).
Reconnecting to target...
Info: Found SWD-DP with ID 0x0BC11477
Info: Found SWD-DP with ID 0x0BC11477
Info: Found Cortex-M0 r0p0, Little endian.
Info: FPUnit: 2 code (BP) slots and 0 literal slots
J-Link>r
Reset delay: 0 ms
Reset type NORMAL: Resets core & peripherals via SYSRESETREQ & VECTRESET bit.
J-Link>erase
Erasing device (SKEAZN64xxx2)...
(...several second pause while it communicates with the MCU...)
****** Error: PC of target system has unexpected value after erasing sector. (PC = 0xFFFFFFFE)!
---------------------------------------------------------------------- Registers -------------------------------------------------------------------------------------
PC = FFFFFFFE
Current: R0 = 00F3E3BE, R1 = 00000001, R2 = 4004801C, R3 = 00000001
R4 = 00000000, R5 = 00000000, R6 = 000000F4, R7 = 1FFFFD61
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Info: J-Link: Flash download: Total time needed: 2.174s (Prepare: 0.894s, Compare: 0.000s, Erase: 0.736s, Program: 0.000s, Verify: 0.000s, Restore: 0.542s)
ERROR: Erase returned with error code -5.
জে-লিংক লাইটটি পুরোপুরি ঠিক আছে (আমি এর সাথে এনআরএফ58122 এসসি, অন্য একটি কর্টেক্স-এম0 প্রসেসরটি পড়তে এবং লিখতে পারি) এবং ডিভাইসটি অন্যথায় কাজ করছে বলে মনে হচ্ছে। আমি জানি যে কিনেটিসগুলি আনলক করা হয়েছে কারণ তারা ডিজিকি থেকে নতুন স্টক তৈরি করেছে, তবুও তবুও কোনও ত্রুটি বা দরকারী তথ্য ছাড়াই জিলিঙ্কএক্সে "কিনেটিস আনলক" কমান্ডটি আউট হয়েছে।
এই মুহুর্তে আমি নিশ্চিত যে আমি বোকা কিছু করছি, তবে এটি যা হতে পারে তার জন্য আমি ক্ষতিতে আছি।
এর আগে কেউ কি এই ডিভাইসগুলির সাথে কাজ করেছে? আপনি কিভাবে তাদের প্রোগ্রামিং করছেন?
ওয়াকথ্রু যুক্ত করতে সম্পাদনা করুন:
আরও কিছু তথ্য:
আমি পড়েছি যে এনএমআই # পিনটি রিসেটের বাইরে সক্ষম হয়েছে (এবং এটি সিম_সোপটি পড়ার মাধ্যমে যাচাই করা হয়েছে) তবে এটি সক্ষম হয়েছে যে এটি সক্ষম করার সময় এর অভ্যন্তরীণ টান আছে। এই নির্দিষ্ট অংশে পিটিবি 4 পিন 10 এ রয়েছে যা আমার ডিজাইনে কোনও সংযোগ নয়। এনএমআই পিনটি অক্ষম করা কোনও তাত্পর্যপূর্ণ নয়। আরএসটি # একই; এটি একটি পুশবুটনের সাথে সংযুক্ত যা পিনটি গ্রাউন্ড করে এবং জে-লিংক লাইটেও যায় তবে কোনও বাহ্যিক পুলআপ নেই। এটি বিবেচনা করা উচিত নয় কারণ এনএমআই # এর মতো, আরএসটি # পিনের অভ্যন্তরীণ পুলআপ রয়েছে যা পিটিএ 5 রিসেট হওয়ার জন্য কনফিগার করা থাকলে সক্ষম হয়।
এখন ক্লকিংয়ের দিকে তাকাচ্ছি ... রিসেটের বাইরে, আইসিএস হ'ল এফএলএল-এর ঘড়ির উত্স এবং আইসিএস_সি 2-তে বিডিএল 001 (রিসেট ডিফল্ট) সেট করা হয়েছে। যদি আমি সঠিকভাবে বুঝতে পারি তবে এর অর্থ হ'ল 32kHz অভ্যন্তরীণ দোলকটি 1024 দ্বারা FLL দ্বারা গুণিত হয়েছে এবং তারপরে 2 দ্বারা বিভক্ত হয়ে ICSOUTCLK 32kHz * 1024/2 বা 16.8MHz তৈরি করে। আমি জে-লিঙ্ক সিএলআইয়ের মাধ্যমে যাচাই করতে পারি যে আইসিএসএস পড়ে এফএলএল লক হয়েছে:
J-Link>mem8 40064004 1
40064004 = 50
(লক এবং আইআরএফএসটি সেট করা আছে, এটি সঠিক)
আমি তারপরে যাচাই করতে এগিয়ে যাই যে সিমটি ফ্ল্যাশ নিয়ন্ত্রকের জন্য সিমটি সিএসএসসিজিসি পড়ে ঘড়ি সক্ষম করেছে enabled আমি দ্রুত তা নিশ্চিত করতেও পরীক্ষা করতে পারি যে সিম_বাসুডে BUSDIV শূন্যতে সেট করা আছে যার অর্থ BUSCLK একই ICOUTCLK (যেমন এটি বিভক্ত হচ্ছে না) হিসাবে একই ফ্রিকোয়েন্সি:
J-Link>mem32 4004800c 1
4004800C = 00003000
J-Link>mem32 40048018 1
40048018 = 00000000
এখনও অবধি সবকিছু ঠিকঠাক দেখাচ্ছে। BUSCLK 16.8MHz এবং ফ্ল্যাশ নিয়ামক ঘড়িটি গেটেড নয়।
এবার ফ্ল্যাশ কন্ট্রোলারের দিকে এগিয়ে যাওয়া যাক। রিসেটের বাইরে এফসিএলকে 2004 শূন্য, এবং আমাদের একটি 1 মেগাহার্টজ ঘড়ি দরকার। KEA64RM- এ সারণী 18-2 দেখায় যে এফডিএল 0x10 এ সেট করা উচিত।
রিসেটের বাইরে:
J-Link>mem8 40020000 1
40020000 = 00
বিভাজক স্থাপন এবং জিনিস যাচাই করা ভাল:
J-Link>w1 40020000 10
Writing 10 -> 40020000
J-Link>mem8 40020000 1
40020000 = 90
এফডিএলএলডি সেট করা আছে এবং এফডিএল-তে সঠিক মানটি দেখানো হয়েছে।
অনেকদূর এগিয়ে যাওয়ার আগে আসুন নিশ্চিত হয়ে নিন যে ফ্ল্যাশটি সুরক্ষিত নেই:
J-Link>mem8 40020001 1
40020001 = FE
কেইএন = 11 (অক্ষম) এবং এসইসি = 10 (অনিরাপদ)। ঠিক আছে. ডিভাইসটি ফাঁকা রয়েছে তা যাচাই করার চেষ্টা করুন:
J-Link>mem8 40020006 1
40020006 = 80
J-Link>w1 40020002 0
Writing 00 -> 40020002
J-Link>w1 4002000a 1
Writing 01 -> 4002000A
J-Link>mem8 40020006
J-Link>w1 40020006 80
Writing 80 -> 40020006
J-Link>mem8 40020006 1
40020006 = 83
এখানে আমরা দেখতে পেলাম যে এফএসটিএটি-তে এমজিস্ট্যাট বিটগুলি দেখায় যে ফাঁকা চেক ব্যর্থ হয়েছে এবং অ-সংশোধনযোগ্য ত্রুটিও পাওয়া গেছে। অস্বাভাবিক. আসুন আমরা নিজেরাই এটি মুছে ফেলার চেষ্টা করি:
J-Link>w1 40020002 0
Writing 00 -> 40020002
J-Link>w1 4002000a 8
Writing 08 -> 4002000A
J-Link>w1 40020006 80
Writing 80 -> 40020006
J-Link>mem8 40020006 1
40020006 = 80
মুছে ফেলতে সমস্ত কমান্ড সফল হয়েছে। এখন একটি ফাঁকা চেক চেষ্টা করে দেখুন:
J-Link>w1 40020002 0
Writing 00 -> 40020002
J-Link>w1 4002000a 1
Writing 01 -> 4002000A
J-Link>w1 40020006 80
Writing 80 -> 40020006
J-Link>mem8 40020006 1
40020006 = 80
এখন ফাঁকা চেক ঠিক আছে?
এই মুহুর্তে আমি হাল ছাড়ার জন্য প্রস্তুত, এই প্রোটোটাইপগুলিতে লোকসান খাওয়া এবং এসটি থেকে এমন একটি প্রসেসরের সাথে যেতে যেখানে আমার আগে কখনও এই ধরণের সমস্যা ছিল না। কিনেটিস ডকুমেন্টেশন যথেষ্ট পরিমাণে পুরোপুরি তবে এটি খুব ঘন এবং এটি শুরু করা আমার পক্ষে খুব কঠিন। আমি মেমোরি রিডের মাধ্যমে I / O কে টানতে পারি এবং অন্যান্য পেরিফেরিয়ালগুলিতে অ্যাক্সেস করতে পারি তবে ফ্ল্যাশ কন্ট্রোলারের কী সমস্যা আছে তা আমার জীবনের পক্ষে বের করতে পারি না। আমি 20 বছরেরও বেশি সময় ধরে মাইক্রোসের সাথে কাজ করছি এবং এই জাতীয় অসুবিধা এমনটি যা আমি এর আগে কখনও পাইনি।
20150102 সম্পাদনা করুন:
সুতরাং এখনও এখানে যান না। আমি আসলে একটি FRDM-KL25Z Eval বোর্ড ($ 15 DigiKey থেকে) কিনেছি এবং OpenSDA ডিবাগার জেনেরিক CMSIS-ড্যাপ সফ্টওয়্যার নির্বাণ এবং অনুযায়ী J11 কেটে এটা পরিবর্তিত কিথ Wakeham এর ব্লগ । আমি অন-বোর্ড টার্গেট পেয়েছি (কেএল 25 জেড) একটি সহজ প্রোগ্রাম চালাচ্ছে যাতে এটি রিসেট লাইনে হস্তক্ষেপ না করে এবং আমি আমার এসকেইএজেডএন 64 ওপেনওসিডি সহ দেখতে পাচ্ছি এবং এটি খেলতে পারি, তবে দুর্ভাগ্যক্রমে এটি এটি প্রোগ্রামও করতে পারে না। কিনেটিস ডিজাইন স্টুডিও (কেডিএস) সফ্টওয়্যারটি আমার কেনেটিসকে ফ্ল্যাশ করবে না কারণ এটি বলে যে এটি সুরক্ষিত এবং আমাকে একটি গণ মুছে ফেলতে হবে, তবে ওপেনওসিডি (কেডিএসের অংশ হিসাবে) এটি কীভাবে করতে হবে তা মনে হয় না। আমার ম্যাকের উপর আমি ওপেনসিডিডি নির্মিত গিট মাস্টার সংস্করণ কিনেটিসকে বোঝে, তবে নির্দিষ্ট কেইএ সিরিজটি নয়, তাই আমি ফিরে এসেছি square
জে-লিঙ্কে ফিরে যাচ্ছি ...
@ অ্যাডামহাউনের সত্যিই ভাল ধারণা ছিল, এবং আমি জে-লিংক পুনরায় সেট করার ধরণটি (আরএসটিটাইপ কমান্ড) টাইপ করে '6' (কিনেটিস) জে-লিংকটি পুনরায় সেট করার পরে নজরদারিটি অক্ষম করার কথা বলেছি। ডাব্লুডিওজি_সিএস 1 রেজিস্টার (0x40052000) দেখে মনে হচ্ছে যে এটিই কেস, তবে এখনও ডাইস নেই। মুছে ফেলা অপারেশনটি 0xfffffffe এবং ত্রুটি কোড -5 এ পিসির সাথে রেলগুলি বন্ধ করে দেবে বলে মনে হচ্ছে, এবং "আনলক কিনেটিস" কমান্ড কেবল তখনই কাজ করে যদি আমি সিম_সপটিটি ব্যবহার করে রিসেট পিনটি অক্ষম করে (32x-বিট মান 0x00000008 থেকে 0x40048004 লিখে)। দুর্ভাগ্যক্রমে যদি আমি এটি করি যে সিপিইউটিকে আর কখনও থামানো যায় না, সম্ভবতঃ কারণ এসডাব্লুডি ইন্টারফেস রিসেট লাইনটি এসডাব্লুডি ডিএপকে একটি পরিচিত অবস্থায় জোর করতে ব্যবহার করতে পারে না।
20150103 সম্পাদনা করুন:
আমি বিডিং এলইডি
পুনরাবৃত্তি
আমি বিডিং এলইডি
টিএল; ডিআর সংস্করণ: ইউএসবিডিএম চিত্রটি এফআরডিএম-কেএল 25 জেড বোর্ডে রাখুন (এটি একটি নিজস্ব গল্প), পরীক্ষার জন্য আর্ম প্রোগ্রামার স্ট্যান্ডেলোন অ্যাপ্লিকেশন ব্যবহার করুন। শক্তি চক্র এবং voilà।
দীর্ঘ সংস্করণ পরে আসবে। এই কেইএজেডএন 64 বোর্ডের জন্য সফটওয়্যারটি লিখতে এবং ডিবাগ করতে, এর সাথে যে সমস্ত সফ্টওয়্যার রয়েছে সেগুলি সংশোধন / পরীক্ষা শেষ করতে এবং অন্য ক্লায়েন্টের জন্য কিছু ডকুমেন্টেশনে কাজ করার জন্য আমার কাছে এখন 48h এরও কম। আমি প্রতিশ্রুতি দিচ্ছি আমি এই প্রশ্নের বিস্তারিত উত্তর দিয়ে আপডেট করব । আমি শুধু আমার সাফল্য ভাগ করতে চেয়েছি। আপনার সহায়তার জন্য প্রত্যেককে ধন্যবাদ। আমার মোডগুলির সাথে কথা বলতে হতে পারে কারণ আমি বিশেষত আপনার কয়েকজনকে অনুগ্রহটি দিতে চাই।