Freescale Kinetis KE - เขียนไปยังแฟลช


12

ฉันใช้ไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์หลากหลายเป็นเวลาหลายปีแล้ว แต่ดูเหมือนว่าฉันจะรู้สึกทึ่งกับซีรี่ส์ Kinetis KE (โดยเฉพาะ S9KEAZN64AMLC)

17 มกราคม 2558 TL; DR:

Freescale ยืนยันว่า v2.0.0 ของซอฟต์แวร์ Kinetis Design Studio ของพวกเขาไม่ทำงานกับอุปกรณ์นี้ (รวมถึง eval board TRK-KEA64 ของตัวเอง) พวกเขาแนะนำให้ใช้ CodeWarrior MCU V10.6 ในขณะนี้

Segger ได้เปิดตัว v4.96a ("a" เป็นสิ่งสำคัญฉันใช้ v4.96) ซึ่งแก้ไขปัญหาและช่วยให้คุณใช้บอร์ดดีบักเกอร์ Segger J-Link Lite CortexM กับ KDS และมีความสามารถของโปรแกรม / การดีบักแบบเต็ม

ก่อนที่ Segger จะวางจำหน่าย v4.96a ฉันสามารถที่จะแฟลชชิปโดยทำการตั้งโปรแกรมดีบักเกอร์ OpenSDA ใหม่บนบอร์ด EVAL FRDM-KL25Z ราคาไม่แพง ($ 15) ของ Freescale โดย reflashing เฟิร์มแวร์ OpenSDA ที่มาพร้อมกับUSBDM (ใช้ v4.10.6.240) ฉันใช้ซอฟต์แวร์ "ARM โปรแกรมเมอร์" ของ USBDM แบบสแตนด์อโลน ฉันไม่ได้ใช้เวลามากในการพยายามแก้ไขข้อบกพร่องเนื่องจากฉันมีความเชี่ยวชาญเพียงพอในการดีบัก "oldschool" ซึ่งไม่จำเป็น โปรดตรวจสอบให้แน่ใจว่าคุณแฟลชโปรแกรม "ใจดี" ลงในเป้าหมายบนเครื่อง KL25 หรืออาจรบกวนการเขียนโปรแกรมเนื่องจากบรรทัดรีเซ็ตรีเซ็ตเป้าหมาย KL25 ของออนบอร์ดยังคงเชื่อมต่อกับดีบักเกอร์ OpenSDA แม้จะตัด J11 (ดูโพสต์บล็อกของ Keith Wakeham ลิงค์ด้านล่าง)

ขอบคุณมากสำหรับริชสไตเกอร์สำหรับการช่วยเหลือฉันอย่างจริงจังในการพิจารณาปัญหาและยืนยันการค้นพบของฉันทางอีเมล

ตอนนี้กลับไปที่คำถามที่เรากำหนดไว้เป็นประจำ:

ฉันได้สร้างบอร์ด 3.3V ที่เรียบง่าย มันมี LEDs บางตัวใน PTA การเชื่อมต่อ UART บน PTC และ SWD line นั้นอยู่ที่สายเฉพาะของพวกเขา ไม่มีอะไรแปลกหรือตลกเกี่ยวกับบอร์ดนี้

ฉันใช้ J-Link Lite สำหรับ Cortex-M (J-Link LITE CortexM-9 ดูhttps://www.segger.com/jlink-lite-cortexm.html ) และทั้ง OSX และ Windows ฉันได้รับ ผลลัพธ์เดียวกัน: ยูทิลิตี J-Link Commander สามารถระบุชิปได้ฉันสามารถอ่านและเขียนไปยัง SRAM และเล่นกับอุปกรณ์ต่อพ่วงที่มีการอ่านและเขียนไปยังที่อยู่ 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.

J-Link Lite นั้นสมบูรณ์แบบ (ฉันสามารถอ่านและเขียนไปที่ nRF58122 SoC ซึ่งเป็นหน่วยประมวลผล Cortex-M0 อีกเครื่องหนึ่งด้วย) และดูเหมือนว่าอุปกรณ์จะทำงานได้ ฉันรู้ว่า Kinetis ถูกปลดล็อคเนื่องจากเป็นหุ้นใหม่จาก DigiKey แต่ถึงกระนั้นคำสั่ง "kinetis unlock" ใน JLinkExe ก็หมดลงโดยไม่มีข้อผิดพลาดหรือข้อมูลที่เป็นประโยชน์

เมื่อถึงช่วงเวลานี้ฉันมั่นใจว่าฉันกำลังทำอะไรที่โง่ แต่ฉันก็สูญเสียสิ่งที่อาจเป็นได้

มีใครเคยทำงานกับอุปกรณ์เหล่านี้มาก่อนหรือไม่ คุณเขียนโปรแกรมพวกเขาเป็นอย่างไร

แก้ไขเพื่อเพิ่มคำแนะนำ:

ข้อมูลเพิ่มเติมบางส่วน:

ฉันอ่านว่า NMI # pin เปิดใช้งานไม่ได้ตั้งค่าใหม่ (และตรวจสอบสิ่งนี้โดยการอ่าน SIM_SOPT) แต่ยังมีการดึงภายในเมื่อเปิดใช้งาน ในส่วนนี้ PTB4 อยู่บนขา 10 ซึ่งไม่ได้เชื่อมต่อในการออกแบบของฉัน การปิดใช้งานพิน NMI นั้นไม่แตกต่างกัน RST # คล้ายกัน มันเชื่อมต่อกับปุ่มกดที่เชื่อมต่อกับพินและไปที่ J-Link Lite แต่ไม่มีแรงดึงภายนอก สิ่งนี้ไม่สำคัญเพราะเช่น NMI # พิน RST # มีการดึงภายในที่เปิดใช้งานเมื่อกำหนดค่า PTA5 ให้รีเซ็ต

ดูการตอกบัตรในขณะนี้ ... จากการรีเซ็ต ICS เป็นแหล่งสัญญาณนาฬิกาของ FLL และ BDIV ใน ICS_C2 ถูกตั้งค่าเป็น 001 (ค่าเริ่มต้นการรีเซ็ต) ถ้าฉันเข้าใจถูกต้องนี่หมายความว่าออสซิลเลเตอร์ภายใน 32kHz นั้นคูณด้วย 1024 โดย FLL แล้วหารด้วย 2 ทำให้ ICSOUTCLK 32kHz * 1024/2 หรือ 16.8MHz ฉันสามารถตรวจสอบผ่าน J-Link CLI ว่า FLL ถูกล็อคโดยการอ่าน ICS_S:

J-Link>mem8 40064004 1
40064004 = 50

(ตั้งค่า LOCK และ IREFST ซึ่งถูกต้อง)

ฉันจะไปต่อเพื่อตรวจสอบว่า SIM ได้เปิดใช้งานนาฬิกาสำหรับตัวควบคุมแฟลชโดยอ่าน SIM_SCGC ฉันยังสามารถตรวจสอบได้อย่างรวดเร็วเพื่อให้แน่ใจว่า BUSDIV ใน SIM_BUSDIV ถูกตั้งค่าเป็นศูนย์ซึ่งหมายความว่า BUSCLK เป็นความถี่เดียวกับ ICSOUTCLK (นั่นคือมันไม่ได้ถูกแบ่งออก):

J-Link>mem32 4004800c 1
4004800C = 00003000
J-Link>mem32 40048018 1
40048018 = 00000000

จนถึงทุกอย่างดูดี BUSCLK คือ 16.8MHz และนาฬิกาตัวควบคุมแฟลชไม่ได้ถูกแบ่งให้ดู

ทีนี้มาดูตัวควบคุมแฟลชกันดีกว่า ออกจากการรีเซ็ต FCLKDIV เป็นศูนย์และเราต้องการนาฬิกา 1MHz ตารางที่ 18-2 ใน KEA64RM แสดงว่าควรตั้งค่า FDIV เป็น 0x10

ไม่ได้รีเซ็ต:

J-Link>mem8 40020000 1
40020000 = 00

การตั้งตัวแบ่งและตรวจสอบสิ่งต่าง ๆ เป็นสิ่งที่ดี:

J-Link>w1 40020000 10
Writing 10 -> 40020000
J-Link>mem8 40020000 1
40020000 = 90

FDIVLD ถูกตั้งค่าและค่าที่ถูกต้องใน FDIV จะปรากฏขึ้น

ก่อนที่จะไปไกลเกินไปขอให้แน่ใจว่าแฟลชไม่ได้ป้องกัน:

J-Link>mem8 40020001 1
40020001 = FE

KEYEN = 11 (ปิดใช้งาน) และ SEC = 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

ที่นี่เราเห็นว่าบิต MGSTAT ใน FSTAT บ่งชี้ว่าการตรวจสอบว่างเปล่าล้มเหลวและยังพบข้อผิดพลาดที่ไม่สามารถแก้ไขได้ แปลก ลองลบด้วยตนเอง:

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

ตอนนี้เช็คว่างเปล่าใช้ได้ไหม?

ณ จุดนี้ฉันพร้อมที่จะยอมแพ้กินความสูญเสียในต้นแบบเหล่านี้และไปกับโปรเซสเซอร์จาก ST ที่ฉันไม่เคยมีปัญหาแบบนี้มาก่อน เอกสารของ Kinetis นั้นละเอียดเพียงพอ แต่มีความหนาแน่นสูงมากและฉันพบว่ามันยากมากในการเริ่มต้น ฉันสามารถกระดิก I / O ผ่านการอ่านหน่วยความจำและเข้าถึงอุปกรณ์ต่อพ่วงอื่น ๆ แต่ฉันไม่สามารถคิดได้ว่าตัวควบคุมแฟลชใช้งานได้นานเท่าไร ฉันทำงานกับ micros มานานกว่า 20 ปีและความยากลำบากแบบนี้เป็นสิ่งที่ฉันไม่เคยพบมาก่อน

แก้ไข 20150102:

ยังคงไม่ไปที่นี่ ผมได้ซื้อจริง EVAL คณะกรรมการ frdm-KL25Z ($ 15 จาก Digikey) และแก้ไขได้โดยการวางซอฟต์แวร์ CMSIS-DAP ทั่วไปในการดีบักเกอร์ OpenSDA และตัด J11 ตามบล็อกคี ธ Wakeham ของ ฉันมีเป้าหมายแบบออนบอร์ด (KL25Z) ที่รันโปรแกรมอย่างง่ายดังนั้นจึงไม่รบกวนการรีเซ็ตบรรทัดและฉันสามารถดู SKEAZN64 ของฉันกับ OpenOCD และเล่นกับมัน แต่น่าเสียดายที่มันไม่สามารถตั้งโปรแกรมได้เช่นกัน ซอฟต์แวร์ Kinetis Design Studio (KDS) จะไม่กะพริบ Kinetis ของฉันเพราะมันบอกว่ามันได้รับการป้องกันและฉันต้องทำการลบจำนวนมาก แต่ OpenOCD (เป็นส่วนหนึ่งของ KDS) ดูเหมือนจะไม่รู้วิธีการทำเช่นนี้ รุ่นต้นแบบ git ของ OpenOCD ที่ฉันสร้างขึ้นบน Mac ของฉันเข้าใจ Kinetis แต่ไม่ใช่ซีรีส์ KEA ที่เฉพาะเจาะจงดังนั้นฉันจึงกลับไปที่จตุรัสหนึ่ง

กลับไปที่ J-Link ...

@ AdamHaun มีเงื่อนงำที่ดีจริง ๆ และถ้าฉันตั้ง J-Link รีเซ็ตประเภท (คำสั่ง rsettype) เพื่อพิมพ์ '6' (Kinetis) J-Link ควรจะปิดการใช้งานจ้องจับผิดหลังจากรีเซ็ตแกน มองไปที่การลงทะเบียน WDOG_CS1 (0x40052000) ปรากฏว่าเป็นกรณี แต่ก็ยังไม่มีลูกเต๋า การดำเนินการลบดูเหมือนว่าจะปิดทางรถไฟด้วยพีซีที่ 0xfffffffe และรหัสข้อผิดพลาด -5 และคำสั่ง "ปลดล็อก kinetis" จะทำงานได้ก็ต่อเมื่อฉันปิดการใช้งานพินรีเซ็ตโดยใช้ SIM_SOPT (โดยเขียนค่า 32 บิต 0x00000008 ถึง 0x40048004) น่าเสียดายถ้าฉันทำเช่นนั้น CPU จะไม่สามารถหยุดอีกครั้งสันนิษฐานได้เพราะอินเตอร์เฟส SWD ไม่สามารถใช้สายรีเซ็ตเพื่อบังคับให้ SWD DAP เข้าสู่สถานะที่เป็นที่รู้จัก

แก้ไข 20150103:

ฉันมีไฟ LED กระพริบ

ซ้ำ

ฉันมีไฟ LED กระพริบ

TL; DR เวอร์ชัน: ใส่อิมเมจ USBDM บนบอร์ด FRDM-KL25Z (เรื่องราวทั้งหมดเป็นของตัวเอง) ใช้แอป ARM โปรแกรมเมอร์แบบสแตนด์อโลนเพื่อส่งการทดสอบด้วยตัวเองไปยังบอร์ด วงจรไฟฟ้าและvoilà

รุ่นยาวจะมาในภายหลัง ตอนนี้ฉันมีเวลาน้อยกว่า 48 ชั่วโมงในการเขียนและตรวจแก้จุดบกพร่องซอฟต์แวร์สำหรับบอร์ด KEAZN64 นี้เสร็จสิ้นการแก้ไข / ทดสอบซอฟต์แวร์อื่น ๆ ที่เข้ากันได้และทำงานกับเอกสารบางอย่างสำหรับไคลเอ็นต์อื่น ฉันสัญญาว่าฉันจะอัปเดตคำถามนี้พร้อมคำตอบโดยละเอียด ฉันแค่อยากจะแบ่งปันความสำเร็จของฉัน ขอบคุณทุกคนสำหรับความช่วยเหลือของคุณ ฉันอาจต้องพูดคุยกับ mods เพราะฉันต้องการมอบเงินรางวัลให้กับคุณโดยเฉพาะ


คำถามงี่เง่า แต่คุณแน่ใจหรือไม่ว่าคุณใช้ j-link lite ที่ถูกต้อง พวกเขากำลัง จำกัด เพียงหนึ่งแพลตฟอร์ม ยังไม่ได้ใช้ผิดตัวเอง แต่นี่คือสิ่งที่ฉันคาดหวังว่ามันจะล้มเหลว
Scott Seidman

ระบุว่าแท็ก j-link และ kinetis ที่นี่ไม่มีเนื้อหาใด ๆ (เพียงคำถามเดียว) คุณอาจลองค้นหาฟอรัมการสนับสนุนของผู้ผลิตหรืออีเมลการสนับสนุนทางโทรศัพท์ ฯลฯforum.segger.comอาจจะใช่หรือไม่
Fizz

community.freescale.com/community/kinetisปรากฏสถานที่อีกแห่งหนึ่งซึ่งคุณอาจพบว่าผู้คนมีความรู้เกี่ยวกับเรื่องนี้ community.freescale.com/thread/337779ดูเหมือนจะคล้ายกันมากหากไม่ตรงกับคำถามของคุณ ...
Fizz

1
@RespawnedFluff ที่จริงผมมีคำถามที่เกือบจะเหมือนกันในฟอรั่ Kinetis: community.freescale.com/message/466015 e.se เข้าถึงได้ไกลกว่าและฉันต้องการชุมชน / ไซต์นี้ดังนั้นฉันจึงคิดว่าจะไม่เจ็บถามที่นี่ด้วย
akohlsmith

1
@RespawnedFluff อัปเดตคำถามเพื่อรวมรุ่น J-Link ที่เฉพาะเจาะจง ไม่ใช่คอร์เฉพาะสำหรับ OEM และระบุโดยตรงว่า "รองรับคอร์เท็กซ์ -M0 / M0 + / M1 / ​​M3 / M4 / M7 ใด ๆ " โดยตรง
akohlsmith

คำตอบ:


3

ฉันไม่พบข้อผิดพลาดเชิงตรรกะใด ๆ ในกระบวนการของคุณจริง ๆ แต่นี่คือคำแนะนำ:

  • นอกจากนี้ยังมีการลงทะเบียน FTMRH_FERSTAT (ที่ 4002_0007h) มันควรจะบอกคุณว่าเกิดอะไรผิดพลาด ... แต่เฉพาะในกรณีของความเท่าเทียมกัน (หรือข้อผิดพลาดที่เท่าเทียมกันสองครั้ง) ฉันไม่มั่นใจว่าจะบันทึกสิ่งใดในกรณีหรือลบข้อผิดพลาด แต่อาจคุ้มค่าที่จะเช็คเอาท์

  • เอกสาร KEA ยังระบุด้วยว่าการขัดจังหวะอาจเกิดขึ้นจากข้อผิดพลาดของแฟลช (ส่วน "18.3.5 Flash และ EEPROM ขัดจังหวะ") ฉันไม่รู้ว่าเกิดอะไรขึ้นเมื่อ SEGGER ลบ แต่มันเป็นคำอธิบายที่น่าเชื่อถือว่าทำไมพีซีถึงเปลี่ยนเช่นกันเนื่องจากคุณเห็นข้อผิดพลาดในการลงทะเบียน FSTAT น่าเสียดายที่ส่วนเอกสาร KEA สำหรับการตั้งค่าอินเทอร์รัปต์คอนโทรลเลอร์ ("3.3.2 การตั้งค่าเวกเตอร์แบบอินเทอร์รัปต์คอนโทรลเลอร์ (NVIC)") ค่อนข้างชี้ไปในทิศทางของเว็บไซต์ ARM สำหรับเอกสารฉบับเต็ม ฉันไม่สามารถทราบได้ว่ามีการตั้งค่าตัวจัดการขัดจังหวะเริ่มต้น (ขณะบูต) สำหรับข้อผิดพลาดของแฟลชหรือไม่

  • คุณลบระดับเซกเตอร์ด้วยตนเองเท่านั้นดังนั้นให้ลองด้วยตนเอง (ตามด้วยการเขียนลงทะเบียนที่เหมาะสมด้วยตัวเอง) ออกคำสั่งลบแฟลชแบบเต็ม วิธีเดียวที่จะทำสิ่งนี้ในคำสั่งเดียวดูเหมือนจะเป็น "คำสั่งแฟลชที่ไม่ปลอดภัย" ซึ่งจัดทำไว้ในส่วน 18.3.9.10 (หน้า 246) ของคู่มือ ทั้งสองนี้จะ "ไม่ปลอดภัย" อุปกรณ์และทำการแฟลชแบบเต็มและ EEPROM ลบ คุณสามารถสำรวจ FSTAT บิต (CCIF) เพื่อดูว่ามันเสร็จสมบูรณ์เมื่อใดและตรวจสอบข้อผิดพลาดอีกครั้งหลังจากนั้น แก้ไข: นอกจากนี้ยังมีส่วน "18.3.9.7 ลบคำสั่งบล็อกทั้งหมด" ในคู่มือ, duh

  • ลองใช้ความถี่สัญญาณนาฬิกาที่ต่ำกว่า สิ่งใดที่เหนือกว่า 0.8 Mhz ทำงานตามเอกสาร ฉันแนะนำสิ่งนี้เพราะมีหนึ่งกระทู้ในฟอรัม Freescale ที่แฟลชภายนอกทำงานได้ดี แต่ไม่เกินความถี่ที่แน่นอนที่ยังคงอยู่ในช่วงที่เป็นเอกสาร ดังนั้นจึงเป็นไปได้ที่ตัวควบคุมแฟลชในชิปจะมีลักษณะเป็นเกล็ดและไม่สามารถใช้งานได้เต็มช่วงความถี่ที่ระบุ

  • ในทำนองเดียวกันเจ้าเป็นชิปที่แตกต่างกัน ไม่น่าเชื่อว่าจะมีค่าใช้จ่ายเท่าใด (ประมาณ $ 3) ที่คุณได้รับ ฉันจำได้ว่ามีชิป x86 แบบฝังที่ทำงานได้ดีในหลาย ๆ ด้าน แต่มีข้อผิดพลาดแปลก ๆ ในคำแนะนำโหมดป้องกันบางอย่าง ปัญหาของฉันหายไปด้วยอุปกรณ์ที่แตกต่างจากยี่ห้อเดียวกัน มันไม่ชัดเจนสำหรับฉันถ้า Freescale มีสเต็ปปิ้งและทำธุระ (ที่เปิดเผยต่อสาธารณะ) สำหรับอุปกรณ์เหล่านี้หรือไม่

นี่คือทั้งหมดที่ฉันคิดได้ในแง่ของการแนะนำการดีบักที่ผู้อื่นไม่ได้กล่าวถึงในหน้านี้

20150103 แก้ไข:

(ย้ายเนื้อหาที่นี่จากความคิดเห็นและขยายของฉัน)

ดูเหมือนว่าไม่ใช่ทุกรุ่นของ Kinetis Series ที่ได้รับการทดสอบกับแฟลชทั้งหมด ซีรีย์ EA ที่ค่อนข้างใหม่ซึ่งคุณใช้งานอยู่ดูเหมือนจะได้รับการสนับสนุนอย่างเป็นทางการโดยกะพริบของ OEM / Cyclone MAX ของ Freescale เท่านั้น; มันเป็นเพียงคนเดียวที่แสดงอยู่บนหน้าของ Freescale สำหรับ serires รับตอนนี้สำหรับเก่า Kinetis เช่น KL0 รายการจะมากอีกต่อไปรวมทั้ง SEGGER ฉันไม่รู้ว่าเป็นเพราะการขาดการทดสอบแฟลชอื่น ๆ สำหรับซีรีส์ EA หรือว่ามีการเล่นโวหารที่เกี่ยวข้องกับการเขียนโปรแกรมซึ่งปัจจุบันมีเพียง Cyclone MAX เท่านั้นที่รู้ ฉันหวังว่านี่อาจจะเป็นเพียง Freescale ที่ช้าลงในรายการ flashers อื่น ๆ แต่เมื่อตรวจสอบคู่มือJ-link (หวังว่าจะเป็นอันที่ถูก), ไม่มีซีรี่ส์ Kinetis E หรือ EA ที่นั่น (หน้า 249) ทดสอบแล้ว แต่มีเฉพาะ Kinetis K10 ถึงอุปกรณ์ K60 (และ MAC7 รุ่นเก่าบางรุ่น)

น่าสังเกตว่าซอฟต์แวร์ / เฟิร์มแวร์ PExDrv สำหรับ Cyclone MAX มี Service Pack (v10.3) ลงวันที่ 3/20/2014 ซึ่ง "เพิ่มการสนับสนุน MKE04Z64, MKE04Z128, MKE06Z64, MKE06Z128, SKEAZ64และอนุพันธ์ของ SKEAZ128" อีกประเด็นคือซอฟต์แวร์ bootloader / flashloader ของ Freescale สำหรับ Kinetisแม้จะได้รับการอัปเดตมากขึ้นเมื่อไม่นานมานี้ใน 12/2014 อย่าแสดงรายการอุปกรณ์ E หรือ EA [sub] ใด ๆ ที่รองรับ ดังนั้นฉันคิดว่ามีบางอย่างที่แตกต่างกันพอสมควรเกี่ยวกับการกระพริบระหว่าง E / EA-series และ Kinetis อื่น ๆ เช่น K10 ถึงแม้ว่าฉันจะไม่รู้ว่าอะไรคือความแตกต่างนั้น ดังนั้นฉันคิดว่าการที่ EA กระพริบจะทำงานโดยอัตโนมัติกับสิ่งใดก็ตาม แต่ Cyclone MAX อาจไม่สมจริงในตอนนี้ ในที่สุดคุณอาจจะสามารถหาวิธีที่จะทำได้ในระดับ "โลหะเปลือย" (คำสั่งลงทะเบียนโดยตรง) จากเอกสารชุด EA แต่ฉันยอมรับว่าเอกสารนั้นค่อนข้างป้าน มันขาดคำแนะนำทีละขั้นตอนเป็นเพียงคู่มืออ้างอิง มี bootloader / flashloader ของ Freescale ที่รองรับ E / EA ซีรีส์คุณล่ะ

การทดสอบของคุณด้วย FRDM-KL25Z (ซึ่งมาพร้อมกับ Kinetis L series) ชี้ไปในทิศทางเดียวกันนั่นคือคุณไม่สามารถสลับ L-series กับ EA-series และใช้ flasher เดียวกัน (OpenSDA ในกรณีนี้)

และถ้าคุณชอบ Keith (บล็อกเกอร์) ที่ "คิด [s] $ 100 ดอลลาร์สำหรับโปรแกรมเมอร์ไร้สาระ" คุณอาจไม่พอใจกับมุมมองของการลดลง $ 900 + กับพายุไซโคลนนั้น ฉันไม่รู้ว่า Freescale ทำสิ่งนี้โดยมีจุดประสงค์เพื่อขนแกะลูกค้ายานยนต์ของพวกเขาหรือไม่ ... มันดูแปลกที่เครื่องมือในซีรี่ส์ Kinetis ส่วนใหญ่ไม่ได้ทำงานกับ E / EA

นอกจากนี้โปรดระวังว่าฟังก์ชั่นการกระพริบของ OpenSDA จะทำงานได้กับ MS Windowsเท่านั้น

หากคุณยินดีที่จะลอง (แฮ็ค) กระดานเพิ่มขึ้นกระดานที่มี Kinetis E-series อาจเป็นแนวคิดที่ดีกว่าเช่น FRDM-KE02Z ($ 13 ที่ Digi-Key) ยังใช้ OpenSDA ดังนั้นจึงอาจแฮ็กได้ พวกเขาไม่ทำ / ขายกระดานด้วย EA-series เท่าที่ฉันจะบอกได้ อย่างไรก็ตามดูเหมือนว่าคุณไม่สามารถใช้ตัวประมวลผล / กระดาน OpenSDA หนึ่งชนิดในการเขียนโปรแกรมชนิด Kinetis ที่แตกต่างจากชนิดหนึ่งบนบอร์ดของตัวเองแม้ว่าตัวประมวลผลทั้งสองจะอยู่ในชุดเดียวกัน (เช่น L) แต่ตัวเลขแตกต่างกัน น่าเสียดายที่ "Open" ใน OpenSDA เท่านั้นหมายความว่าข้อมูลจำเพาะ SDA นั้นเปิดอยู่ไม่ใช่ว่าพวกเขาให้รหัสต้นฉบับเป็นโอเพนซอร์ส ดังนั้นฉันจึงไม่สามารถหาซอร์สโค้ดเพื่อตั้งโปรแกรมแฟลช E-series ได้ เห็นได้ชัดว่าฉันเพียงแค่ครึ่งขวาเกี่ยวกับที่ OpenSDA v1 ไม่ได้เป็นโอเพนซอร์ส แต่ v2 คือ

ดังนั้นนี่คือ lowdown บนOpenSDAv2 มันเป็นเพียง bootloader CMSIS-DAP / mbed ดังนั้นจึงอาจไม่มีคุณสมบัติเดียวกันหรือสนับสนุนชิปเดียวกันกับ v1 ... และที่จริงเป็นกรณีเพราะflash_features.hไม่มีรายการ MKE (Kinetis E-series) SKE (EA-series) เพียงอย่างเดียว อุปกรณ์ โดยสรุปแล้วข้อเสนอของ Freescale สำหรับซีรีย์ EA ดูเหมือนจะเป็น: ซื้อ flasher พายุไซโคลนของเรา $ 900 หรือขอให้โชคดีในการเขียนของคุณเองจากแหล่งโอเพนซอร์สที่ไม่สมบูรณ์ที่เราได้ปล่อยออกมา

มันจะเปิดออก แต่ที่มีโครงการที่มาเปิดที่สามารถเขียนโปรแกรมอย่างน้อย E-ชุด Kinetis คือUSBDM บิตที่เกี่ยวข้องจากการเปลี่ยนแปลงคือ:

V4.1.6.140 (เมษายน 2014)

อุปกรณ์ Kinetis เพิ่มเติม (MKE04, MKE06, MK64F)

  • แก้ไขสำหรับอุปกรณ์ MKE (ล้มเหลวในการเขียนโปรแกรมยกเว้นหลังจากลบข้อมูลจำนวนมาก)

และจากรายการบันทึกนั้นก็ปรากฏว่า E-series แปลกประหลาด ไม่มีการสนับสนุนโดยตรงสำหรับ EA-series (SKE) แต่รหัสฐานนั้นอาจเป็นทางออกที่ดีที่สุดของคุณหากคุณต้องการแฮ็กกะพริบของคุณเอง หรือบางทีคุณสามารถโน้มน้าวให้ผู้สร้าง USBDM เพิ่มการรองรับ EA-series (SKE) ในฐานะที่เป็นฮาร์ดแวร์สำหรับ USBDM ปรากฎว่าคุณสามารถใช้ FRDM-KL25Z ที่คุณได้มาอย่างน่าเบื่อ แต่คุณยังคงต้องแฮ็กซอฟต์แวร์ USBDM เพื่อรองรับชิป SKE

ไฟล์กำหนดค่าหลักสำหรับ USBDMดูค่อนข้างน่ากลัว ใน USDBM flashers ที่แตกต่างกัน (ฐานรหัส) ถูกใช้สำหรับอุปกรณ์ชุด MKE ที่แตกต่างกัน: สิ่งที่เรียกว่า "FTMRE" ใช้สำหรับ MKE04 และ MKE06 แต่ใช้ "FTMRH" สำหรับ MKE02 หลังจากดูตัวเองสั้น ๆ ที่ฐานสองรหัสคุณเกือบต้องการแน่นอนรหัสฐาน FTRMH ไม่ใช่ FTRME หนึ่ง หลังมีโครงสร้าง FTMRH แตกต่างจากอุปกรณ์ SKEA64 ของคุณตัวอย่างเช่นตัวแบ่งนาฬิกาไม่ใช่ฟิลด์แรก แต่เป็นฟิลด์ที่ 4 FTRME ยังตั้งค่าบัส FIDV เป็น 0x17 = 24Mhz ซึ่งดูเหมือนว่าจะอยู่นอกขอบเขตสำหรับชิปของคุณ (หน้า 224 ในคู่มือ KEA64 แนะนำสูงสุด 20Mhz) FTMRH ตั้งค่าเป็น 0x0F = 16Mhz (เหมือนที่คุณทำ) ซึ่งดูเหมือนจะโอเค

ณ จุดนี้ (เว้นแต่คุณต้องการซื้อ Cyclone MAX) ทางออกที่ดีที่สุดของคุณคือการติดต่อ Podonoghue เพื่อให้ชิปของคุณทำงานกับฐานรหัสของเขา ดูเหมือนว่าเขาจะใช้งานและค่อนข้างยินดีที่จะช่วยเหลือเกี่ยวกับอุปกรณ์ใหม่ (บนฟอรั่ม Freescale)

นอกจากนี้จากซอร์สโค้ด USDBM ที่ฉันสามารถพยากรณ์ได้ว่าไม่มีทาง SEGGER ของคุณสามารถแฟลช SKEA ของคุณเองได้อย่างถูกต้องเว้นแต่จะได้รับการอัพเดตเฟิร์มแวร์ของตัวเองก่อน ทำไมฉันถึงพูดอย่างนั้น? เนื่องจากฐานรหัส FTMRH ของ USDBM ถูกใช้โดยอุปกรณ์หนึ่งตัวตรงนั้น MKE02 ซึ่ง SEGGER ของคุณดูเหมือนจะไม่รู้อะไรเลย (อ้างอิงจากคู่มือ) อุปกรณ์อื่น ๆ ที่ใช้กันทั่วไปเช่น Kinetis L และ K ซีรีส์ต่างใช้แฟลช USDBM ที่แตกต่างกันโดยใช้ฐานรหัส "FTFA" หากคุณดูที่รหัสของ FTFAโครงสร้างการลงทะเบียนแฟลชคอนโทรลเลอร์ (เช่นเริ่มต้นที่ 0x40020000) จะแตกต่างกันสำหรับสิ่งเหล่านี้ ฟิลด์แรกไม่ได้เป็นตัวแบ่งนาฬิกา แต่เป็นสถิติการลงทะเบียน ฯลฯ "ยอดเยี่ยม" สำหรับ Freescale ในการสร้างอุปกรณ์ที่เข้ากันไม่ได้ ... แต่เป็นประโยชน์ต่อผู้สร้างกะพริบอย่างไม่ต้องสงสัย


1
FERSTAT จะไม่แสดงสิ่งใดที่มีประโยชน์ตามที่คุณสงสัย ฉันลองใช้ก่อนหน้านี้ในการล่มสลายทั้งหมดนี้ การขัดจังหวะแฟลชทั้งหมดถูกปิดใช้งานตามค่าเริ่มต้น แต่ฉันตรวจสอบเพื่อดูว่านี่อาจเป็นส่วนหนึ่งของปัญหาหรือไม่ ไม่มีลูกเต๋าอย่างใดอย่างหนึ่ง ฉันมีกระดานสองแผ่นและพวกเขาทั้งสองทำหน้าที่เหมือนกัน แต่ฉันได้เรียนรู้ในช่วงหลายปีที่ผ่านมาว่ามันเป็นเวลาเล็กน้อยที่ซิลิคอนจะตำหนิจริงซึ่งเป็นเหตุผลว่าทำไมฉันจึงฉีกผมออกจากที่นี่ :-)
akohlsmith

ฉันจะลองลดความถี่ลง ค่าเริ่มต้นของการรีเซ็ตดูเหมือนว่าจะเป็นนาฬิกาบัส 16.78MHz (32kHz * 1024/2) ซึ่งเป็นเหตุผลที่ฉันเลือกตัวแบ่งสัญญาณนาฬิกาแฟลชเป็น 0x10 (32kHz * 1024/2/16 เป็น 1.048MHz ซึ่งอยู่ในมาตรฐาน แต่บางที ใกล้กับขอบเล็กน้อย)
akohlsmith

1
ข้อเสนอแนะอื่น ๆ ของคุณเกี่ยวกับคำสั่ง unprotect (0xb) แทนที่จะลบทั้งหมด (0x8) ... มันประสบความสำเร็จ แต่ฉันไม่สามารถหยุด CPU หลังจากนั้นและฉันไม่สามารถตั้งโปรแกรมแฟลชใด ๆ ในภายหลังได้
akohlsmith

ฉันขอขอบคุณอย่างล้นเหลือสำหรับความพยายามทั้งหมดของคุณในการพยายามช่วยเหลือคนแปลกหน้าบนอินเทอร์เน็ตนี้ ฉันพยายามที่จะเข้าใจว่าทำไมชิปนี้จึงใช้งานได้ยากมากแม้ว่าจะใช้โปรแกรมเมอร์ที่ได้รับการสนับสนุน (J-Link และ CMSIS-DAP) และสภาพแวดล้อมและเครื่องมือในการพัฒนาของ Freescale มันทำให้ฉันกลัว
akohlsmith

ขอบคุณสำหรับการวิจัยโดยละเอียดและความช่วยเหลืออย่างต่อเนื่อง ในความเป็นจริงนี่คือสิ่งที่ฉันทำลงไป: ใช้ FRDM-KL25Z กับเฟิร์มแวร์ USBDM และกะพริบ ARM แบบสแตนด์อโลน นี่คือสิ่งที่ได้ทดสอบ LED กะพริบของฉันลงในอุปกรณ์ สิ่งที่อยากรู้คือรายการซีพียูที่สนับสนุน Segger ระบุอย่างชัดเจนถึง SKEAZN64xxx2 แต่ไม่ได้ผล
akohlsmith

2

คุณลองไหม: ปลดล็อกและลบ FLASH ด้วย Segger J-Link

นัยว่าคุณต้อง:

ในการตั้งโปรแกรมส่วนแฟลชที่ได้รับการปกป้องด้วย Segger J-Link ฉันต้องปลดล็อคและลบอุปกรณ์เป็นจำนวนมากก่อน สำหรับสิ่งนี้มียูทิลิตี J-Link Commander ที่มีอินเตอร์เฟสบรรทัดคำสั่งเพื่อป้องกันและลบอุปกรณ์ สำหรับการลบเท่านั้น J-Flash (และ Lite) เป็นเครื่องมือที่มีประโยชน์มากโดยเฉพาะอย่างยิ่งเพื่อให้ได้หน่วยความจำอุปกรณ์ 'สะอาด'

สิ่งที่ฉันคิดว่าน่าสนใจคือคุณต้องปลดล็อกและลบมันในขั้นตอนต่อไปหากคุณต้องการปลดล็อคให้เป็นแบบถาวร:

แต่ดูเหมือนว่าฉันต้องทำการปลดล็อคตามด้วยการลบเพื่อให้ถาวร หากต้องการลบอุปกรณ์ฉันสามารถใช้ยูทิลิตีบรรทัดคำสั่งเดียวกันได้ แต่ฉันต้องระบุชื่ออุปกรณ์ก่อนจากนั้นฉันสามารถลบได้ (ตัวอย่างสำหรับ KL25Z):

EDIT1: เพิ่มข้อมูลผิด

EDIT2: คุณสามารถอ่าน Flash Security (FSEC) ได้ไหม คุณลอง?

EDIT3: จากการใช้คุณสมบัติความปลอดภัยและการป้องกันแฟลชของ Kinetis ฉบับที่1, 6/2012

การลบจำนวนมากผ่าน Debugger / JTAG Debuggers และเครื่องมือ JTAG นั้นมีการ จำกัด การเข้าถึงอุปกรณ์เมื่อตัวประมวลผลมีความปลอดภัย การลงทะเบียนเท่านั้นที่สามารถเข้าถึงได้ผ่าน JTAG คือการลงทะเบียนสถานะ MDM-AP และการควบคุม เพื่ออนุญาตให้เครื่องมือดีบักไปยังส่วนที่ไม่ปลอดภัยสามารถตั้งค่าบิต 0 ของการลงทะเบียน MDM-AP Control เพื่อร้องขอการลบจำนวนมากของโปรเซสเซอร์ ในการใช้วิธีนี้เพื่อปิดการใช้งานความปลอดภัย FSEC [MEEN] จะต้องตั้งค่าเป็นค่าอื่นที่ไม่ใช่ 10 เพื่อให้สามารถลบข้อมูลจำนวนมากได้ หากปิดใช้งานการลบจำนวนมาก FSEC [MEEN] = 10 ดังนั้นแฟลชจะถูกเพิกเฉยต่อการร้องขอการลบจำนวนมากและอุปกรณ์ไม่สามารถไม่ปลอดภัยโดยใช้วิธีนี้ ตัวดีบักจำนวนมากจะใช้บิต 2 ของการลงทะเบียนสถานะ MDM-AP โดยอัตโนมัติเพื่อตรวจสอบว่าอุปกรณ์มีความปลอดภัยหรือไม่เมื่อพยายามสร้างการเชื่อมต่อ หน้าต่างป็อปอัพดีบักเกอร์อาจถูกใช้เพื่อแจ้งเตือนว่าอุปกรณ์นั้นปลอดภัยและถามว่าต้องการการลบจำนวนมากเพื่อไม่ปลอดภัยอุปกรณ์หรือไม่ เมื่อการลบจำนวนมากเสร็จสิ้นและตรวจสอบความปลอดภัยจะถูกปิดใช้งาน ตัวดีบั๊กบางตัวอาจตั้งโปรแกรมฟิลด์กำหนดค่าแฟลชโดยอัตโนมัติเพื่อทำให้แฟลชเข้าสู่สถานะไม่ปลอดภัยหลังจากการลบโดยรวมเสร็จสิ้น FSEC = 0xFE

นอกจากนี้ฉันยังเจอโพสต์ที่กล่าวถึงตระกูล kinetis ที่แตกต่างกันต้องการการจัดการสัญญาณ RESET ที่แตกต่างกันเมื่อพยายามอ่าน / เขียนทะเบียน MDM-AP

EDIT4: คุณลองเพิ่ม pull-up ที่แข็งแกร่งใน SWD_DIO หรือไม่? มันเป็นการยิงในที่มืด แต่ Freescale แนะนำมันอีกครั้ง


ขอขอบคุณที่สละเวลาช่วยกันตรวจสอบและให้คำแนะนำ FTMRH_FSEC (0x40020001) ส่งคืนค่า 0xfe ซึ่งปลดล็อค / ไม่ปลอดภัยเท่าที่คุณจะได้รับ ถ้าฉันอ่านแฟลชที่ 0x0000400c ฉันยังสามารถเห็นบิตความปลอดภัยที่แสดงค่าเดียวกัน (ซึ่งเป็นที่ที่ FSEC ได้รับค่าเมื่อเปิดเครื่อง): J-Link> mem8 400 10 00000400 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FE FF
akohlsmith

J-Link มีคำสั่ง "rsettype" ที่มีค่า Kinetis เฉพาะ (6) ซึ่งปิดใช้งานตัวจับเวลาจ้องจับผิดเมื่อรีเซ็ต ไม่หยุดโปรเซสเซอร์ แต่ฉันสามารถทำได้ด้วยคำสั่ง "h" ฉันยังสามารถเห็นได้ว่าถ้าฉันไม่ได้ใช้ rsettype 6 ที่ watchdog ลงทะเบียนรายงานว่า watchdog ถูกเปิดใช้งานซึ่งตรงกับเอกสารประกอบ
akohlsmith

ฉันจะลองดึงขึ้นทั้งสองบอร์ดที่คุณพยายามทำไม่ได้และถ้ามันไม่ทำงาน Jlink คือ NOK
iggy

ฉันลอง pullup (4.7k ไม่แน่ใจว่าแข็งแกร่งควรจะแข็งแกร่งอย่างไร) แต่ก็ไม่ได้สร้างความแตกต่างเลย
akohlsmith

4k7 นั้นโอเค คุณทำทุกอย่างเท่าที่จะทำได้ จากจุดนี้ในการตรวจสอบพฤติกรรมกับ FRDM-KL25Z แล้วส่งตั๋ว 1 ล้านใบไปที่ Jlink พวก
iggy

1

คุณต้องหยุดโปรเซสเซอร์ก่อน เห็นได้ชัดว่าคุณได้รับอาการของโปรเซสเซอร์ที่กำลังทำงานอยู่ ฉันใช้ openocd; ก่อนที่จะกระพริบอุปกรณ์ฉันใช้คำสั่ง "รีเซ็ตหยุด" "halt" นั้นเป็นคำสั่งย่อยของ "reset" สำหรับการหยุดทันทีหลังจากรีเซ็ตในขณะที่มีคำสั่ง halt แบบสแตนด์อโลนเช่นกัน

ดังนั้นให้มองหาคำสั่ง "reset halt" เพียงแค่หยุดจะไม่เพียงพอเพราะคุณต้องไปยังสถานะของการเริ่มต้นเวกเตอร์ล่วงหน้าที่ฉันเดา


ขอบคุณสำหรับความคิดเห็นของคุณ แต่ตัวแยกหยุด cpu ก่อน ฉันยังพยายามหยุด CPU ด้วยตนเองก่อนที่จะออกคำสั่งเหล่านี้โดยไม่มีการเปลี่ยนแปลงใด ๆ ฉันควรทำให้ชัดเจนในคำถามของฉัน
akohlsmith

ฉันไม่ได้สังเกตว่าคุณกำลังบอกว่าการหยุดก่อนการเริ่มต้นของเวกเตอร์อาจจำเป็น ดูมัน แต่ฉันมีปัญหาในการทำความเข้าใจว่าทำไมมันถึงจำเป็น ขอบคุณสำหรับคำใบ้ทุกความช่วยเหลือเล็กน้อย
akohlsmith

1

ฉันไม่ได้เห็นมันกล่าวถึงดังนั้นฉันจะไปข้างหน้าและคาดการณ์ว่าปัญหาคือส่วนนี้มีแคชที่เปิดใช้งานเมื่อรีเซ็ต สิ่งนี้สอดคล้องกับพฤติกรรม "แปลก" ที่คุณสังเกตเห็นด้วยเช็คเปล่า Flash พื้นฐานได้รับการอัปเดต แต่แคชไม่ได้ ในการแก้ไขปัญหานี้ให้ปิดทั้งข้อมูลและแคชคำสั่งโดยเขียนไปMCM_PLACRที่F000_300Chและล้างแคชตามที่คุณทำ พฤติกรรมแปลก ๆ แบบเดียวกันนี้มีแนวโน้มที่จะสับสน Segger เช่นกัน


นี่เป็นคำแนะนำที่ดีมาก ในการรีเซ็ต MCM_PLACR อ่านเป็น 0x00000850 ซึ่งค่อนข้างแปลก (แคชข้อมูลถูกปิดใช้งาน แต่บิต 6 และ 4 ถูกสงวนไว้ในเอกสารประกอบ) ฉันพยายามปิดการใช้งานทุกอย่าง (การเก็งกำไรแคชตัวควบคุมการสอนแคช) แล้วล้างแคชด้วยการเขียน 0x0000bc00; มันอ่านกลับ 0x0000b850 แต่ไม่มีการเปลี่ยนแปลงพฤติกรรม
akohlsmith

ฉันจะสนใจฟังเป็นอย่างมากเมื่อคุณแก้ปัญหานี้ในที่สุด ในขณะเดียวกันชิปนี้แน่นอนว่าจะไม่ได้อยู่ในการออกแบบของฉันได้ตลอดเวลาเร็ว ๆ นี้ ขออภัยในความเจ็บปวดของคุณ แต่ขอบคุณที่แบ่งปันคำถามที่น่าสนใจ
Edward

0

เนื่องจากข้อความแสดงข้อผิดพลาดเกี่ยวกับค่าพีซีดูเหมือนว่า CPU กำลังปิดทางรถไฟที่ไหนซักแห่ง นี่เป็นช็อตยาว แต่คุณลองปิดใช้งานตัวจับเวลาจ้องจับผิดหรือไม่


นั่นคือคำแนะนำที่ยอดเยี่ยม; ฉันใช้เวลาสักครู่หลังจากอ่านคำตอบของคุณทดสอบทฤษฎีนี้ อย่างไรก็ตามปรากฏว่าเมื่อใช้งาน "อุปกรณ์ skeazn64xxx2" ที่ J-Link ได้รับสิ่งนี้เข้าสู่บัญชีและปิดการใช้งานจ้องจับผิดหลังจากรีเซ็ต ฉันตรวจสอบสิ่งนี้โดยการตรวจสอบการลงทะเบียน WDOG_CS1 ทั้งที่มีและไม่มีการระบุอุปกรณ์ระหว่างรอบพลังงาน :-(
akohlsmith

อืม…โอเคสิ่งอื่น ๆ ที่ฉันสังเกตเห็นคือคุณได้รับข้อผิดพลาดที่แก้ไขได้ระหว่างการตรวจสอบเปล่า J-Link ของคุณปิดการใช้งานแฟลช ECC หรือไม่ หากไม่ใช่นั่นอาจทำให้เกิดปัญหากับการตรวจสอบการอ่านกลับและอาจทำให้เกิดการขัดจังหวะโดยไม่คาดคิด (ฉันไม่คุ้นเคยกับ Freescale MCUs โดยเฉพาะ แต่ฉันคิดว่าพฤติกรรมแบบนี้ค่อนข้างธรรมดา)
Adam Haun
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.