程式版本2.5.1.a,cc2530晶片規格。
/* ------------------------------------------------------------------------------------------------
* Clock Speed
* ------------------------------------------------------------------------------------------------
*/
#define HAL_CPU_CLOCK_MHZ 32
/* This flag should be defined if the SoC uses the 32MHz crystal
* as the main clock source (instead of DCO).
*/
#define HAL_CLOCK_CRYSTAL
/* 32 kHz clock source select in CLKCONCMD */
#if !defined (OSC32K_CRYSTAL_INSTALLED) || (defined (OSC32K_CRYSTAL_INSTALLED) && (OSC32K_CRYSTAL_INSTALLED == TRUE))
#define OSC_32KHZ 0x00 /* external 32 KHz xosc */
#else
#define OSC_32KHZ 0x80 /* internal 32 KHz rcosc */
#endif
#define HAL_CLOCK_STABLE() st( while (CLKCONSTA != (CLKCONCMD_32MHZ | OSC_32KHZ)); )
/* ------------------------------------------------------------------------------------------------
* LED Configuration
* ------------------------------------------------------------------------------------------------
*/
#if defined (HAL_BOARD_CC2530EB_REV17) && !defined (HAL_PA_LNA) && !defined (HAL_PA_LNA_CC2590)
#define HAL_NUM_LEDS 3
#elif defined (HAL_BOARD_CC2530EB_REV13) || defined (HAL_PA_LNA) || defined (HAL_PA_LNA_CC2590)
#define HAL_NUM_LEDS 1
#else
#error Unknown Board Indentifier
#endif
預設好像是Run HAL_BOARD_CC2530EB_REV17的樣子,這是TI開發版的版本號,基本上是使用cc2530ZDK,cc2530ZDK才有下面多定義的LED燈。
#define HAL_LED_BLINK_DELAY() st( { volatile uint32 i; for (i=0; i<0x5800; i++) { }; } )
/* 1 - Green */
#define LED1_BV BV(0)
#define LED1_SBIT P1_0
#define LED1_DDR P1DIR
#define LED1_POLARITY ACTIVE_HIGH
#if defined (HAL_BOARD_CC2530EB_REV17)
/* 2 - Red */
#define LED2_BV BV(1)
#define LED2_SBIT P1_1
#define LED2_DDR P1DIR
#define LED2_POLARITY ACTIVE_HIGH
/* 3 - Yellow */
#define LED3_BV BV(4)
#define LED3_SBIT P1_4
#define LED3_DDR P1DIR
#define LED3_POLARITY ACTIVE_HIGH
#endif
P1_0表示的是 P1.0的pin腳,P1_1表示的是P1.1,以此類推。
/* ------------------------------------------------------------------------------------------------
* Push Button Configuration
* ------------------------------------------------------------------------------------------------
*/
#define ACTIVE_LOW !
#define ACTIVE_HIGH !! /* double negation forces result to be '1' */
/* S1 */
//#define PUSH1_BV BV(1)
//#define PUSH1_SBIT P0_1
#define PUSH1_BV BV(7)
#define PUSH1_SBIT P0_7
同樣的P0_1表示的是 P0.1的pin腳,P0_7表示的是P0.7。ps:註解掉0.1,是想把他換成0.7。
#if defined (HAL_BOARD_CC2530EB_REV17)
#define PUSH1_POLARITY ACTIVE_HIGH
#elif defined (HAL_BOARD_CC2530EB_REV13)
#define PUSH1_POLARITY ACTIVE_LOW
#else
#error Unknown Board Indentifier
#endif
/* Joystick Center Press */
/*#define PUSH2_BV BV(0)
#define PUSH2_SBIT P2_0
#define PUSH2_POLARITY ACTIVE_HIGH*/
#define PUSH2_BV BV(6)
#define PUSH2_SBIT P0_6
#define PUSH2_POLARITY ACTIVE_HIGH
ps:註解掉2.0,是想把他換成0.6。
/* ------------------------------------------------------------------------------------------------
* OSAL NV implemented by internal flash pages.
* ------------------------------------------------------------------------------------------------
*/
// Flash is partitioned into 8 banks of 32 KB or 16 pages.
#define HAL_FLASH_PAGE_PER_BANK 16
// Flash is constructed of 128 pages of 2 KB.
#define HAL_FLASH_PAGE_SIZE 2048
#define HAL_FLASH_WORD_SIZE 4
// CODE banks get mapped into the XDATA range 8000-FFFF.
#define HAL_FLASH_PAGE_MAP 0x8000
// The last 16 bytes of the last available page are reserved for flash lock bits.
// NV page definitions must coincide with segment declaration in project *.xcl file.
#if defined NON_BANKED
#define HAL_FLASH_LOCK_BITS 16
#define HAL_NV_PAGE_END 30
#define HAL_NV_PAGE_CNT 2
#else
#define HAL_FLASH_LOCK_BITS 16
#define HAL_NV_PAGE_END 126
#define HAL_NV_PAGE_CNT 6
#endif
// Re-defining Z_EXTADDR_LEN here so as not to include a Z-Stack .h file.
#define HAL_FLASH_IEEE_SIZE 8
#define HAL_FLASH_IEEE_PAGE (HAL_NV_PAGE_END+1)
#define HAL_FLASH_IEEE_OSET (HAL_FLASH_PAGE_SIZE - HAL_FLASH_LOCK_BITS - HAL_FLASH_IEEE_SIZE)
#define HAL_INFOP_IEEE_OSET 0xC
#define HAL_FLASH_DEV_PRIVATE_KEY_OSET 0x7D2
#define HAL_FLASH_CA_PUBLIC_KEY_OSET 0x7BC
#define HAL_FLASH_IMPLICIT_CERT_OSET 0x78C
#define HAL_NV_PAGE_BEG (HAL_NV_PAGE_END-HAL_NV_PAGE_CNT+1)
// Used by DMA macros to shift 1 to create a mask for DMA registers.
#define HAL_NV_DMA_CH 0
#define HAL_DMA_CH_RX 3
#define HAL_DMA_CH_TX 4
#define HAL_NV_DMA_GET_DESC() HAL_DMA_GET_DESC0()
#define HAL_NV_DMA_SET_ADDR(a) HAL_DMA_SET_ADDR_DESC0((a))
待續...
#define HAL_FLASH_PAGE_PER_BANK 16
// Flash is constructed of 128 pages of 2 KB.
#define HAL_FLASH_PAGE_SIZE 2048
#define HAL_FLASH_WORD_SIZE 4
// CODE banks get mapped into the XDATA range 8000-FFFF.
#define HAL_FLASH_PAGE_MAP 0x8000
// The last 16 bytes of the last available page are reserved for flash lock bits.
// NV page definitions must coincide with segment declaration in project *.xcl file.
#if defined NON_BANKED
#define HAL_FLASH_LOCK_BITS 16
#define HAL_NV_PAGE_END 30
#define HAL_NV_PAGE_CNT 2
#else
#define HAL_FLASH_LOCK_BITS 16
#define HAL_NV_PAGE_END 126
#define HAL_NV_PAGE_CNT 6
#endif
// Re-defining Z_EXTADDR_LEN here so as not to include a Z-Stack .h file.
#define HAL_FLASH_IEEE_SIZE 8
#define HAL_FLASH_IEEE_PAGE (HAL_NV_PAGE_END+1)
#define HAL_FLASH_IEEE_OSET (HAL_FLASH_PAGE_SIZE - HAL_FLASH_LOCK_BITS - HAL_FLASH_IEEE_SIZE)
#define HAL_INFOP_IEEE_OSET 0xC
#define HAL_FLASH_DEV_PRIVATE_KEY_OSET 0x7D2
#define HAL_FLASH_CA_PUBLIC_KEY_OSET 0x7BC
#define HAL_FLASH_IMPLICIT_CERT_OSET 0x78C
#define HAL_NV_PAGE_BEG (HAL_NV_PAGE_END-HAL_NV_PAGE_CNT+1)
// Used by DMA macros to shift 1 to create a mask for DMA registers.
#define HAL_NV_DMA_CH 0
#define HAL_DMA_CH_RX 3
#define HAL_DMA_CH_TX 4
#define HAL_NV_DMA_GET_DESC() HAL_DMA_GET_DESC0()
#define HAL_NV_DMA_SET_ADDR(a) HAL_DMA_SET_ADDR_DESC0((a))
待續...
沒有留言:
張貼留言