⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 omap_init.txt

📁 TI OMAP5910(1510)的最简单测试程序,用于 硬件最初的调试,简要文档含环境配置
💻 TXT
字号:
/*************************************************************/
/*************************************************************/
1.系统初始化
系统初始化过程:
CLKRST_reset -->pll setfreq-->CLKRST_setupScalableMode-->DSPCLKRST_setup

a.CLKRST_reset (Uint16 typeRst );
  Resets OMAP devices as specified.
  arm宏。初始化时取值为GLOBAL。
  参数取值:
	GLOBAL: global reset (DSP,ARM,and peripherals are reset).
	DSP: DSP is reset .
	ARM: ARM is reset.
	ARMPER: ARM peripherals reset.
	
   软件复位。执行完全局软件复位后,arm核和其内部外设释放,但arm外设、dsp、dsp外设
   仍然处于复位状态。
   
b.void PLL_setFreq( PLL_Handle hpll, Uint16 mul, Uint16 div)
  arm函数。
参数:
	hpll is the PLL device handle.
	mul: 1 – 31 integer multiplier
	div: integer divisor {1, 2, 4} when mul = 1 (bypass mode = default mode) and
	     {1, 2, 3, 4} when mul !=1 (lock mode) where mul should not be further 
	     divisible by div.

	初始化pll以产生需要的clkout。

c.void CLKRST_setupScalableMode(CLKRST_Scalable *scalable);
  arm函数。
参数:
	Scalable: Pointer to CLKRST_Scalable structure.
	typedef struct{
		Uint16 armDiv; //values{1,2,4,8}
		Uint16 dspDiv; // values {1,2,4,8}
		Uint16 dspmmuDiv; //values {1,2,4,8}
		Uint16 tcDiv; //values {1,2,4,8}
		Uint16 perDiv; //values {1,2,4,8}
		Uint16 lcdDiv; //values {1,2,4,8}
		Uint16 timx0; //values{0,1}
		Uint16 dspEnable;
		Uint16 perEnMask;
	}CLKRST_SetupScale;
	
	perEnMask can be one of more of the following values:
		LBFREECK:used to generate local bus external output clock,
			 so that even when LB_CK clock is stopped this clock 
			 can still provide external system with a clock 
			 synchronized to LB_CK.
		GPIOCK:mpu gpio clk
		DMACKREQ:system dma clk request
		TIMCK:arm timer clk
		APICK:arm port interface clk
		LBCK:local bus clk
		LCDCK:lcd clk
		PERCK:arm peripheral clk
		XORPCK:OS Timer and CLKIN reference peripheral clock
		WDTCK:Watchdog Timer clock
	
	将arm时钟设置为synchronous scalable模式(arm和tc之间、dsp mmu与 
	tc之间使用fifo)。同时将arm外设从复位状态变为使能状态。同时,使dsp 
	的clock也使能。omap1510只能支持synchronous scalable和synchronous两种 
	模式,后一种模式没有fifo。
	
	
d.void DSPCLKRST_setup (DSPCLKRST_Setup *setup);
  arm函数,设置dsp之clk。使dsp外设从复位态释放。
参数:
	Pointer to DSPCLKRST_Setup structure.
	typedef struct{
	Uint16 perDiv; //values{1,2,4,8}
	Uint16 gpioDiv; //values{1,2,4,8}
	Uint16 uartDiv; //values{4,8}
	Uint16 gpiox0; //为0表示时钟为clkin,为1表示时钟为dpll1
	Uint16 timx0;
	Uint16 uartx0;
	Uint16 perEnMask;
	}DSPCLKRST_Setup;
	
	perEnMask can be one or more of the following values:
		DSP_TIMCK:DSP Timer clock
		DSP_GPIOCK:DSP_GPIOCK
		DSP_UARTCK:DSP_IDLECT2寄存器的bit3,TRM手册上是”reserved“.
		DSP_PERCK:DSP peripheral clock
		DSP_XORPCK:external reference clock
		DSP_WDTCK:Watchdog Timer clock
		
  一旦选定clkin,则前面设置的3个关于dpll分频比div就没什么意义了。
e.

/*************************************************************/
/*************************************************************/
2.pin multiplex
  需要配置的是:
a. ARM public外设:
   USB host、USB client、uWIre、MPUIO、PWT、PWL、keyboard、LPG、HDQ
b. DSP public外设
   MCBSP3	
c. ARM&DSP shared 外设
   GPIO,UART1~3
   不需要multiplex配置的是:
a. ARM
   McBsp2,I2C,Camera,32k timer,MMC/SD,RTC
b. DSP
   McBsp1,MCSI1,MCSI2
   
   L2中断设置中断服务程序时不用”interrupt“关键字,那么,L1是否用?
   
/*************************************************************/
/*************************************************************/
3. DSP BOOT

/*************************************************************/
/*************************************************************/
/*************************************************************/   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -