Zstack3.0.1 使用CC2538SF23芯片工程设置修改指南

本文档详细介绍了如何将ZStack3.0.1协议栈中默认的CC2538芯片型号从SF53更改为SF23的具体步骤,包括修改配置文件、设置调试选项及更新链接器文件等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

zstack3.0.1协议栈默认CC2538芯片的型号是SF53,设置成SF23的步骤如下:
1.选择芯片型号:
这里写图片描述
2.修改option->Linker->Checksum值如图:
就这个设置卡了我两三天
3.option->Debugger->setup->Device description file选择对应芯片
这里写图片描述
4.修改linker connect file –cc2538.icf
下载链接如下:
CC2538xF23.icf
5.修改hal_board_cfg.h(#iifdef CC2538SF53后面为修改内容)


   #define HAL_IMG_A_BEG             FLASH_BASE
   #define HAL_IMG_B_BEG            (FLASH_BASE + 0x0003E000)

   #if defined HAL_IMG_AREA
   #define HAL_NVIC_OSET             512
   #if    (HAL_IMG_AREA == 0)
   #define HAL_NVIC_ADDR            (HAL_IMG_A_BEG + HAL_NVIC_OSET)
   #elif  (HAL_IMG_AREA == 1)
   #define HAL_NVIC_ADDR            (HAL_IMG_B_BEG + HAL_NVIC_OSET)
   #else
   #error  HAL_IMG_AREA is invalid.
   #endif
   #else
   #define HAL_NVIC_ADDR             FLASH_BASE
   #endif

   #ifdef CC2538SF53 //chip flash cfg
   #define HAL_NV_PAGE_END           254

   #define HAL_OTA_LEDGER_PAGE       248
   #else
   #define HAL_NV_PAGE_END           126

   #define HAL_OTA_LEDGER_PAGE       120      
   #endif  //CC2538SF53

   #define HAL_OTA_LEDGER_PAGE_ADDR  (FLASH_BASE + (HAL_OTA_LEDGER_PAGE * HAL_FLASH_PAGE_SIZE))

   /*
   ------------------------------------------------------------------------------------------------  *                         OSAL NV implemented by internal flash pages.  *
   ------------------------------------------------------------------------------------------------  */

   // Flash consists of 256 pages of 2 KB.
   #define HAL_FLASH_PAGE_SIZE       2048
   #define HAL_FLASH_WORD_SIZE       4

   // Z-Stack uses flash pages for NV
   #define HAL_NV_PAGE_CNT           6
   #define HAL_NV_PAGE_BEG           (HAL_NV_PAGE_END-HAL_NV_PAGE_CNT+1)
   #define HAL_NV_START_ADDR         ((FLASH_BASE) + (HAL_NV_PAGE_BEG * HAL_FLASH_PAGE_SIZE))

   // Factory commmissioning location is now placed in the Lock Bits
   page.  The // certificates are stored at the locations defined below.
   // NOTE: these addresses MUST match those defined in the associated
   linker  // control file (.icf) // NOTE: Commissioning items are
   aligned and padded to HAL_FLASH_WORD_SIZE

   // 74-byte Implicit Certificate (for binary 283 Key Establishment)
   #ifdef CC2538SF53
   #define HAL_FLASH_IMPLICIT_CERT_283_ADDR  ( 0x0027FED4 )
   #else 
   #define HAL_FLASH_IMPLICIT_CERT_283_ADDR  ( 0x0023FED4 )
   #endif

   #define HAL_FLASH_IMPLICIT_CERT_283_SIZE  ( 74 + 2 ) // 2-bytes of pad

   // 37-byte CA Public Key (for binary 283 Key Establishment)
   #ifdef CC2538SF53
   #define HAL_FLASH_CA_PUBLIC_KEY_283_ADDR  ( 0x0027FF20 )
   #else
   #define HAL_FLASH_CA_PUBLIC_KEY_283_ADDR  ( 0x0023FF20 )
   #endif

   #define HAL_FLASH_CA_PUBLIC_KEY_283_SIZE  ( 37 + 3 )  // 3-bytes of pad

   // 36-byte Device Private Key (for binary 283 Key Establishment)
   #ifdef CC2538SF53
   #define HAL_FLASH_DEV_PRIVATE_KEY_283_ADDR  ( 0x0027FF48 )
   #else
   #define HAL_FLASH_DEV_PRIVATE_KEY_283_ADDR  ( 0x0023FF48 )
   #endif

   #define HAL_FLASH_DEV_PRIVATE_KEY_283_SIZE  ( 36 )

   // 48-byte Implicit Certificate (for Key Establishment)
   #ifdef CC2538SF53
   #define HAL_FLASH_IMPLICIT_CERT_ADDR  ( 0x0027FF6C )
   #else
   #define HAL_FLASH_IMPLICIT_CERT_ADDR  ( 0x0023FF6C )
   #endif

   #define HAL_FLASH_IMPLICIT_CERT_SIZE  ( 48 )

   // 22-byte CA Public Key (for Key Establishment)
   #ifdef CC2538SF53
   #define HAL_FLASH_CA_PUBLIC_KEY_ADDR  ( 0x0027FF9C )
   #else
   #define HAL_FLASH_CA_PUBLIC_KEY_ADDR  ( 0x0023FF9C )
   #endif

   #define HAL_FLASH_CA_PUBLIC_KEY_SIZE  ( 22 + 2 )  // 2-bytes of pad

   // 21-byte Device Private Key (for Key Establishment)
   #ifdef CC2538SF53
   #define HAL_FLASH_DEV_PRIVATE_KEY_ADDR  ( 0x0027FFB4 )
   #else
   #define HAL_FLASH_DEV_PRIVATE_KEY_ADDR  ( 0x0023FFB4 )
   #endif

   #define HAL_FLASH_DEV_PRIVATE_KEY_SIZE  ( 21 + 3 )  // 3-bytes of pad

   // 8-byte IEEE address (unique for each device)
   #ifdef CC2538SF53
   #define HAL_FLASH_IEEE_ADDR  ( 0x0027FFCC )
   #else
   #define HAL_FLASH_IEEE_ADDR  ( 0x0023FFCC )
   #endif

   #define HAL_FLASH_IEEE_SIZE  ( 8 )  // Re-defining Z_EXTADDR_LEN here

   // Location of SoC factory IEEE address (Information Page)
   #define HAL_INFO_ADDR  0x00280000
   #define HAL_INFO_IEEE_OFST  0x028
   #define HAL_INFO_IEEE_ADDR  (HAL_INFO_ADDR + HAL_INFO_IEEE_OFST)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值