STM32F1 Programming Manual

  • 127 Replies
  • 2514 Views
*

Offline tha

  • *****
  • 4642
    • View Profile
Re: STM32F1 Programming Manual
« Reply #40 on: August 12, 2022, 11:19:43 am »
The Cortex-M3 รวม an exclusive access monitor ไว้, ที่ติดตามความจริงที่ว่า the processor ได้ปฏิบัติ a Load-Exclusive instruction แล้ว.

The processor เอาออก exclusive access tag ของมันหาก:
•   มันปฏิบัติ a CLREX instruction
•   มันปฏิบัติ a Store-Exclusive instruction, โดยไม่คำนึงถึงว่าการเขียนสำเร็จหรือไม่.
•   An exception เกิดขึ้น. นี้เป็นวิธีที่ the processor สามารถแก้ไข semaphore conflicts ระหว่าง different threads.

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ the synchronization primitive instructions, ดู LDREX and STREX บนหน้า 70 and CLREX บนหน้า 71.

*

Offline tha

  • *****
  • 4642
    • View Profile
Re: STM32F1 Programming Manual
« Reply #41 on: August 12, 2022, 11:37:50 am »
2.2.8 Programming hints for the synchronization primitives

ANSI C ไม่สามารถสร้างโดยตรง the exclusive access instructions. บาง C compilers จัดให้มี intrinsic functions สำหรับ generation of these instructions:

The actual exclusive access instruction ที่สร้างขึ้นอยู่กับ the data type of the pointer ที่ผ่านไปยัง the intrinsic function. ตัวอย่างเช่น, the following C code สร้าง the require LDREXB operation:

__ldrex((volatile char *) 0xFF);

*

Offline tha

  • *****
  • 4642
    • View Profile
Re: STM32F1 Programming Manual
« Reply #42 on: August 13, 2022, 09:01:16 am »
2.3 Exception model

ส่วนนี้อธิบาย the exception model.

2.3.1 Exception states

แต่ละ exception อยู่ในสถานะหนึ่งของ the following states:

Inactive                        The exception ไม่ active และไม่ pending.

Pending                        The exception กำลังรอเพื่อถูกบริการโดย the processor. An interrupt request จาก a peripheral
                                      หรือจาก software สามารถเปลี่ยนสถานะของ the corresponding interrupt ไปเป็น pending.

Active                            An exception ที่กำลังถูกบริการโดย the processor แต่ยังไม่เสร็จสมบูรณ์.
                                      Note: An exception handler สามารถอินเตอร์รัพท์การปฏิบัติของ exception handler อีกตัวหนึ่ง.
                                      ในกรณีของทั้งสอง exceptions อยู่ใน the active state.


Active and pending    The exception กำลังถูกบริการโดย the processor และมี a pending exception จาก the same
                                       source.

*

Offline tha

  • *****
  • 4642
    • View Profile
Re: STM32F1 Programming Manual
« Reply #43 on: August 13, 2022, 09:24:09 am »
2.3.2 Exception types

The exception types คือ:

Reset                       Reset ถูกปลุกเมื่อ power up หรือ a warm reset. The exception model ถือว่า reset เป็นรูปแบบพิเศษ
                                 ของ exception. เมือ reset ถูกยืนยัน, การทำงานของ the processor จะหยุด, อาจเกิดขึ้น ณ จุดใดๆใน an
                                 instruction. เมื่อ reset ถูกถอนการยืนยัน, execution จะสตาร์ทใหม่จาก the address ที่จัดให้มีโดย the
                                 reset entry ใน the vector table. Execution จะสตาร์ทใหม่เป็น privileged execution ใน Thread
                                 mode.

*

Offline tha

  • *****
  • 4642
    • View Profile
Re: STM32F1 Programming Manual
« Reply #44 on: August 13, 2022, 09:55:38 am »
NMI                          A NonMaskable Interrupt (NMI) สามารถถูกให้สัญญานโดย a peripheral หรือถูกทริกโดย software. นี้
                                 เป็น the highest priority exception นอกเหนือจาก reset. มันถูกเปิดใช้งานอย่างถาวรและมี a fixed priority
                                 of -2. NMIs ไม่สามารถเป็น:
                                 •  บังหรือป้องกันไม่ให้ทำงานโดย exception อื่นใดๆ
                                 •  ใช้สิทธิ์ก่อนโดย exception ใดๆนอกเหนือจาก Reset.

*

Offline tha

  • *****
  • 4642
    • View Profile
Re: STM32F1 Programming Manual
« Reply #45 on: August 13, 2022, 10:06:18 am »
Hard fault                A hard fault คือ an exception ที่เกิดขึ้นเนื่องจาก an error ในระหว่าง exception processing, หรือเนื่องจาก
                                  an exception ไม่สามารถถูกจัดการโดย exception mechanism อื่นใดๆ. Hard faults มี a fixed priority
                                  of -1, หมายความว่าพวกมันมี priority สูงกว่า exception ใดๆที่มี priority ที่กำหนดค่าได้.

*

Offline tha

  • *****
  • 4642
    • View Profile
Re: STM32F1 Programming Manual
« Reply #46 on: August 13, 2022, 10:28:03 am »
Memory management   A memory management fault คือ an exception ที่เกิดขึ้นเนื่องจาก a memory protection related
fault                                   fault. The fixed memory protection constraints จะตัดสิน fault นี้, สำหรับทั้ง instruction และ
                                           data memory transactions.  fault นี้ถูกใช้เพื่อยกเลิก instruction ที่เข้าถึง Execute Never (XN)
                                           memory regions.

*

Offline tha

  • *****
  • 4642
    • View Profile
Re: STM32F1 Programming Manual
« Reply #47 on: August 13, 2022, 10:35:33 am »
Bus fault                  A bus fault คือ an exception ที่เกิดขึ้นเนื่องจาก a memory related fault สำหรับ an instruction หรือ
                                  data memory transaction. สิ่งนี้อาจเกิดจาก error ที่ตรวจพบบน a bus ใน the memory system.