Electoday 4.0

ไมโครคอนโทรลเลอร์ => Other MCUs => Topic started by: ROM on September 19, 2013, 12:48:38 pm

Title: MCU ที่ Run คำสั่งจาก RAM ได้
Post by: ROM on September 19, 2013, 12:48:38 pm
ขอถามครับว่า ท่านใดพอจะทราบว่ามี MCU ตัวไหนที่มี โครงสร้างให้ทำการ RUN คำสั่ง จาก RAM ภายใน chip ได้บ้างครับ  (หากมี RAM มาพอ) หรือจะ Run จากภายนอกก็ได้ครับ
Title: Re: MCU ที่ Run คำสั่งจาก RAM ได้
Post by: pa_ul on September 19, 2013, 01:02:09 pm
- CPU ทุกตัวที่ใช้สถาปัตยกรรมแบบ Neumann จะสามารถทำคำสั่งที่อยู่ใน RAM ได้
- แต่ถ้าเป็น CPU ที่ใช้สถาปัตยกรรมแบบ Harvard ก็จะทำไม่ได้ เนื่องจากถูกกำหนดมาอย่างนั้นด้วยตัวสถาปัตยกรรมเอง

ไมโครคอนโทรลเลอร์ ส่วนใหญ่จะใช้สถาปัตยกรรมแบบ Harvard เพื่อความมีเสถียรภาพในการทำงาน
Title: Re: MCU ที่ Run คำสั่งจาก RAM ได้
Post by: Lastman on September 19, 2013, 01:25:47 pm
ผมว่า จขกท. ลองอธิบายโปรเจ็ค หรือโครงงานท่านให้ละเอียดกว่านี้อีกสักหน่อยอาจจะมีคนช่วยอีกเยอะครับ

เสริมอีกหน่อยมีลักษณะที่ใกล้เคียงกันคือพวก Propeller PX32
อันนี้มันจะ compile ไปเก็บใน EEPROM ตอนรันงานก็ดึงออกมาจาก EEPROM ครับ
Title: Re: MCU ที่ Run คำสั่งจาก RAM ได้
Post by: ROM on September 19, 2013, 03:09:12 pm
- CPU ทุกตัวที่ใช้สถาปัตยกรรมแบบ Neumann จะสามารถทำคำสั่งที่อยู่ใน RAM ได้
- แต่ถ้าเป็น CPU ที่ใช้สถาปัตยกรรมแบบ Harvard ก็จะทำไม่ได้ เนื่องจากถูกกำหนดมาอย่างนั้นด้วยตัวสถาปัตยกรรมเอง

ไมโครคอนโทรลเลอร์ ส่วนใหญ่จะใช้สถาปัตยกรรมแบบ Harvard เพื่อความมีเสถียรภาพในการทำงาน

ขอบคุณท่าน pa_ul มากครับ แสดงว่า จะ run คำสั่งใน RAM ได้ต้องเป็นแบบ von neumann เท่านั้น

ผมว่า จขกท. ลองอธิบายโปรเจ็ค หรือโครงงานท่านให้ละเอียดกว่านี้อีกสักหน่อยอาจจะมีคนช่วยอีกเยอะครับ

เสริมอีกหน่อยมีลักษณะที่ใกล้เคียงกันคือพวก Propeller PX32
อันนี้มันจะ compile ไปเก็บใน EEPROM ตอนรันงานก็ดึงออกมาจาก EEPROM ครับ


ท่าน Lastman ครับ คือผมจะอ่านคำสั่งการทำงาน(Code)ที่มาจาก Flash/eeprom ภายนอก ที่ถูกโปรแกรมมาแล้วมี Code คำสั่งการทำงานอยู่แล้ว แต่ถูกแบ่งเป็น page มีหลายๆ page อาจจะเป็น page ละ 256/512 bytes แล้วแต่จะเลือกอีกที
มีขบวนการทำงานของ code ในแต่ละ page ที่แตกต่างกัน ทำงานไม่เหมือนกัน และคงจะ Load ให้แต่ละ page มันไป run ใน ram นะครับ อาจเป็นการ call ไป แล้วรอ return กลับ ให้มันเป็นอย่างนี้ครับ
และที่ท่านแนะนำ Propeller PX32 ดูแล้วงงๆ ไม่รู้ว่าโครงสร้างมันเป็นแบบไหน แต่ก็น่าสนใจดี
Title: Re: MCU ที่ Run คำสั่งจาก RAM ได้
Post by: Lastman on September 19, 2013, 07:17:08 pm
ผมอ่านกระทู้ท่านหลายรอบเลย ... แต่ภาพรวมก็ยังไม่เข้าใจ
เลยต้องขอกลับมา edit อีกรอบ... (edit ไปแล้ว 3 รอบ)

Controller ที่ใกล้เคียงกัน ก็เห็นจะมีแต่ Propeller ล่ะครับ เพราะตัวมันคือ CPU 32 bit 8 core ดีๆ ตัวนึง
เวลาจะทำงานมันจะไปอ่านชุดคำสั่งมาจาก EEProm เพื่อทำงานตามที่วางไว้ และมันมี 8 Core แบ่งกันทำงานได้
แต่รายละเอียดลึกๆ ผมก็ไม่ทราบนะ ว่าจะทำอย่างไร 

------------------------ ------------------------------------------------------
Title: Re: MCU ที่ Run คำสั่งจาก RAM ได้
Post by: ROM on September 19, 2013, 09:05:36 pm
แย่จัง ทำให้ท่าน Lastman อ่านอย่างลำบากเลย ซึ้งในน้ำใจครับ
สงสัย อธิบายไม่ค่อยดีนัก

คือ สรุปว่า ผมต้องการ run ชุดคำสั่ง (code) ที่มาจาก Flash/Eeprom ข้างนอก มา Run ใน Ram ของ MCU นั่นแหละครับ
แต่เดี๋ยวจะลองศึกษาตัว Propeller PX32 กับ eeprom ข้างนอก ตามที่ท่านแนะนำดูครับ ไม่รู้ว่าจะใกล้เคียงไหมกับที่ต้องการไหม
ยังไงก็ขอบคุณท่าน Lastman มากครับ
ให้ Like ท่านสักจึกนะครับ
Title: Re: MCU ที่ Run คำสั่งจาก RAM ได้
Post by: JENG on September 19, 2013, 09:20:45 pm
mcs-51 ไง พอได้ป่าว  ???
Title: Re: MCU ที่ Run คำสั่งจาก RAM ได้
Post by: ROM on September 19, 2013, 10:16:48 pm
mcs-51 ไง พอได้ป่าว  ???

ขอบคุณท่าน [jeng] นะครับ แต่อ่านข้อมูลแล้ว MCS-51 มันต้องต่อ Ram ภายนอกเพื่อให้ Run ได้ มันออกจะยุ่งยากสักหน่อย
Ram ภายในของ MCU ที่ Run เป็น code ได้มีน้อยเบอร์ครับ (ส่วนใหญ่ทำตัวเป็น xdata มากกว่า) อย่างไรก็ขอบคุณครับที่แนะนำไว้
Title: Re: MCU ที่ Run คำสั่งจาก RAM ได้
Post by: AppleIIe on September 20, 2013, 11:12:28 am
คำถามนี้ ต้องหาข้อมูลเกี่ยวกับโครงสร้างของ MCU แต่ละตระกูลนะครับ เอาเท่าที่จะพอเป็นที่รู้จักนะครับ (หากไม่ครบคงไม่ว่ากันนะ)
อย่างที่ท่าน pa_ul ให้ข้อมูลไว้ ว่า RUN ใน RAM ได้ต้องก็คงเป็นการจัดโครงสร้างแบบ von neumann
เท่าที่ดู แล้วที่เป็น von neumann แท้ๆ ก็จะเป็นกลุ่ม 68HCxx , ez80 , MSP430 , ARM7 , ST7 พวกนี้ run code ใน ram ได้เลย
ส่วนที่เป็นแบบ Harvard ก็มีกลุ่ม MCS-51 , Atmega , PIC16F , PIC18F , PIC32 , eZ8 , PSoC1 , STM8 , Arm-Cortex
อย่างไรก็ดี ด้วยความที่เป็น von neumann เป็นที่นิยมและมีประโยชน์มากกว่าในหลายๆด้าน ทำให้กลุ่มที่เป็น Hardvard
บางตัวก็ได้ถูกออกแบบให้ทำงานเป็นแบบ von neumann ได้ด้วย ตัวอย่างเช่น MCS-51 , PIC32 , STM8 , Arm-Cortex
อาจมีมากกว่านี้ ลองหาข้อมูลต่อดูก็ได้ครับ และข้อมูลใดผิดพลาด ไม่ครบถ้วน ไม่ update ก็ขออภัยนะครับ คงน่าจะพอเป็นข้อมูลได้บ้างครับ
Title: Re: MCU ที่ Run คำสั่งจาก RAM ได้
Post by: ROM on September 20, 2013, 10:03:04 pm
ขอขอบคุณทุกท่านครับ ได้แนวทางเรียบร้อยแล้วครับ  :)
Title: Re: MCU ที่ Run คำสั่งจาก RAM ได้
Post by: Lastman on September 21, 2013, 02:09:45 am
ได้แนวทางอย่างไรก็มาเฉลย เพื่อให้คนที่ช่วยตอบได้รับทราบผลด้วยสิครับ :)
Title: Re: MCU ที่ Run คำสั่งจาก RAM ได้
Post by: ROM on September 21, 2013, 06:18:00 am
ท่าน Lastman ครับ ขอบคุณท่านมากครับ จริงๆก็ได้ไปดู Propeller PX32 ตามที่ท่านแนะนำไว้แล้วครับ เห็นเขาใช้ภาษา spin เป็นตัวพัฒนา ต้องไปศึกษาอีกพอสมควร และไม่ secure code ด้วยครับ ส่วน C ก็มีแต่เกิดข้อจำกัดบางอย่างอยู่ ก็เลยเปลี่ยนแนวครับ ไปใช้ตัวอื่นๆที่ทำได้ใกล้เคียงกันดีกว่าในเจตนาเดิม ตอนนี้ที่คิดไว้คือ ARM ครับ ค่อนข้างมี RAM เยอะดี แต่ก็ต้องไปศึกษาเรื่อง compiler option ที่จะทำการสร้าง code ในตำแหน่ง RAM แต่เห็นทางจาก http://www.keil.com/support/docs/3228.htm น่าจะพอเป็นแนวทางอยู่ครับผม  :)
ไม่รู้จะง่ายอย่างที่คิดไว้หรือเปล่้า เอาไว้เจอปัญหาจะมาถามผู้รู้อย่างพวกท่านใหม่ดีกว่านะ
โดยเฉพาะท่าน Lastman ที่มีน้ำใจพยายามทำความเข้าใจและช่วยหาคำตอบมาให้ ซึ้ง  :'(