| 数据搜索系统,热门电子元器件搜索 |
|
ST486DX 数据表(PDF) 22 Page - STMicroelectronics |
|
|
|||||||||||||||||||||||||||||
ST486DX 数据表(HTML) 22 Page - STMicroelectronics |
|
22 / 34 page ![]() ST486DX - SMM SOFTWARE CONSIDERATIONS 32 full 4-GBytes of possible system memory without entering protected mode. Once the limits of a segment register are set, the base can be changed by use of the MOV instruction. An Interrupt Descriptor Table (IDT) needs to be set up in SMM memory before any interrupts or exceptions occur. Once initialized, the SMI handler can execute calls, jumps, and other changes of flow and will generate software interrupts and faults. The Interrupt Descriptor Table Register can be loaded with an LIDT instruction to point to a small IDT in SMM memory that can handle the possible interrupts and exceptions that might occur while in the SMM routine. A stack should always be set up in SMM memory so that stack operations done within SMM do not affect the system memory. ; SMM environment initialization example rsdc ds,cs:,seg4G ;DS is a 4GByte segment, base=0 rsdc es,cs:,seg4G ;ES is a 4GByte segment, base=0 rsdc fs,cs:,seg4G ;FS is a 4GByte segment, base=0 rsdc gs,cs:,seg4G ;GS is a 4GByte segment, base=0 rsdc ss,cs:,seg4G ;SS is a 4GByte segment, base=0 lidt cs:smm_idt ;load IDT base and limit for ;SMM’s IDT mov esp, smm_stack jmp continue_smm_code ; ;descriptor of 4GByte data segment for use by rsdc seg4G dw 0ffffh ; limit 4G dw 0 ; base = 0 db 0 ; base = 0 db 10010011B ; data segment, DPL=0,P=1 db 8fh ; limit = 4G, db 0h ; base = 0 dw 0 ; segment register = 0 smm_idt dw smm_idt_limit dd smm_idt_base 3.5 Accessing Main Memory Overlapped by SMM Memory When in SMM mode there are instances where the program needs access to the system memory that is overlapping with SMM memory. This need most commonly occurs when the SMM routine is trying to save the entire memory image to disk before powering down the system. To access main memory overlapping the SMM space (i.e., generate ADS# for memory MOV instructions rather than SMADS#) set the MMAC bit in CCR1. The following code will enable and then disable MMAC: |
|
链接网址 |
| ALLDATASHEET是否为您带来帮助? [ DONATE ] |
关于 Alldatasheet | 广告服务 | 联系我们 | 隐私政策 | 数据表链接 | 链接交换 | 制造商名单 All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |