热度 13
2017-5-5 11:13
1970 次阅读|
0 个评论
这一篇就来简单的讲一讲Blackfin中BF533的寄存器吧,其他型号均可作为参考。 从上图我们可以看到,红色框框内的是core component,剩下的则是memory unit。还是英文得了,中文好拗口哇。 Blackfin Processors are register-intensive devices All computations are performed on data contained in registers All peripherals are setup using registers Memory is accessed using pointers in address registers There are two ways to access registers on the ADSP-BF533 Directly by name Memory-mapped registers (MMRs) Register is very important for blackfin processors because blackfin processors are register-intensive devices. All Blackfin processor operation, such as computation, peripheral setup and memory accessing need register. We can see that blackfin can do nothing without register. Take bf533 as an example, there are two ways to access the registers. Then let’s see what register we can access. ADSP-BF533 Core Registers: Core registers accessed by name Data Registers: R0-R7 Accumulator Registers: A0, A1 Pointer Registers: P0-P5, FP, SP,USP DAG Registers: I0-I3, M0-M3, B0-B3, L0-L3 Cycle Counters: Cycles, cycles2 Program Sequencer: SEQSTAT System Configuration Register: SYSCFG Loop Registers: LT , LB , LC Interrupt Return Registers: RETI, RETX, RETN, RETE For core register, All the registers in the list can accessed directly by name. ?This is the example. This instruction load data register R0 with contents of System configuration register. You can see ,all the data register are 32-bit wide. They are referred to as dreg. Data Registers: R0-R7 Accumulator Registers: A0, A1 Pointer Registers: P0-P5, FP, SP,USP A majority of registers are memory mapped and must be accessed indirectly Core MMRs are used to configure the core registers They are listed in Appendix A of the HRM. All Core MMRs must be accessed with 32-bit reads or writes. System MMRs are used to configure all other peripherals They are listed in Appendix B of the HRM. Some System MMRs must be accessed with 32-bit reads or writes and others with 16-bit reads or writes (See the HRM for details). The addresses of the core and system MMRs are defined in the defBF533.h, defBF532.h, defBF531.h and defLPblkfin.h header files. MMRs can only be accessed in Supervisor mode. Example: P0.H = hi(MMR_NAME); // load upper 16-bits of MMR address to address register But a majority of register are memory mapped and they can not accessed directly by name. 这种太技术化的厂家写好的描述性文章,我就不做翻译了,可能看英文会更清楚一些。 任何ADI DSP的问题,均可联系OP的QQ:5516164,微信:OpenADSP OP的网站:www.openadsp.com OP的论坛:www.openadsp.com/bbs OP的官方淘宝店:https://shop108086345.taobao.com/ ADI DSP中文资料全集(含视频教程)的淘宝链接:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-5192690539.12.Ck3v8fid=39935721554