你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 contiki 下main源文件分析

[复制链接]
咕噜 发布时间:2014-11-13 23:16
本帖最后由 咕噜 于 2016-8-17 21:00 编辑

/************************************************************************************************/
最近一段时间在学习contiki系统,STM32在无线应用上前景更为广阔。
/************************************************************************************************/
平台配置-- platform-conf.h

  1. /*
  2. *  \file
  3. *      platform-conf.h
  4. *   \author
  5. *      Marcus Lunden <marcus@thingsquare.com>>
  6. *   \desc
  7. *      platform dependent configurations
  8. */

  9. #ifndef __PLATFORM_CONF_H__
  10. #define __PLATFORM_CONF_H__
  11. /*--------------------------------------------------------------------*/
  12. #include <inttypes.h>
  13. #include <string.h>
  14. /*--------------------------------------------------------------------*/
  15. //系统时钟
  16. #define F_CPU                   168000000ul
  17. //LED
  18. #define LEDS_CONF_LED1              1     /* green */
  19. #define LEDS_CONF_LED2              2     /* orange */
  20. #define LEDS_CONF_LED3              4     /* red */
  21. #define LEDS_CONF_LED4              8     /* blue */
  22. #define LEDS_CONF_LED5              5     /* yellow */

  23. #define LEDS_CONF_RED                    (1<<LEDS_CONF_LED3)
  24. #define LEDS_CONF_GREEN                    (1<<LEDS_CONF_LED1)
  25. #define LEDS_CONF_BLUE                    (1<<LEDS_CONF_LED4)

  26. //#define FIXED_NET_ADDRESS             1
  27. //#define NET_ADDR_A                    0x2001
  28. //#define NET_ADDR_B                    0xdb8
  29. //#define NET_ADDR_C                    0xbbbb
  30. //#define NET_ADDR_D                    0xabcd

  31. #define UART1_CONF_TX_WITH_INTERRUPT        1   //0
  32. #define WITH_SERIAL_LINE_INPUT              1   //串口
  33. #define ENERGEST_CONF_ON                    0   //能量估计,失效
  34. #define TELNETD_CONF_NUMLINES               6   //telnet服务
  35. //射频RADIO 驱动
  36. #define NETSTACK_CONF_RADIO                 spirit_radio_driver
  37. //射频RADIO 最大负载
  38. #define NETSTACK_RADIO_MAX_PAYLOAD_LEN      96 /* spirit1-config.h */
  39. /*---------------------------------------------------------------------*/
  40. /* define ticks/second for slow and fast clocks. Notice that these should be a
  41.   power of two, eg 64,128,256,512 etc, for efficiency as POT's can be optimized
  42.   well. */
  43. #define CLOCK_CONF_SECOND               2048
  44. // One tick: 85.33 us
  45. #define RTIMER_ARCH_SECOND              168000/*32768*/

  46. /*--------------------------------------------------------------------*/
  47. #define RTIMER_CLOCK_LT(a,b)     ((signed short)((a)-(b)) < 0)

  48. typedef unsigned long clock_time_t;
  49. typedef unsigned long long rtimer_clock_t;

  50. #define CC_CONF_REGISTER_ARGS          0
  51. #define CC_CONF_FUNCTION_POINTER_ARGS  1
  52. #define CC_CONF_FASTCALL
  53. #define CC_CONF_VA_ARGS                1
  54. #define CC_CONF_INLINE                 inline

  55. #define CCIF
  56. #define CLIF

  57. typedef uint8_t         u8_t;
  58. typedef uint16_t        u16_t;
  59. typedef uint32_t        u32_t;
  60. typedef  int32_t        s32_t;
  61. typedef unsigned short  uip_stats_t;
  62. /*--------------------------------------------------------------------*/

  63. #endif /* __PLATFORM_CONF_H__ */
复制代码


收藏 评论6 发布时间:2014-11-13 23:16

举报

6个回答
咕噜 回答时间:2014-11-13 23:18:30
本帖最后由 咕噜 于 2016-8-17 21:01 编辑

contiki-conf配置


  1. #ifndef __CONTIKI_CONF_H__
  2. #define __CONTIKI_CONF_H__

  3. #include "platform-conf.h"      //平台配置(硬件)

  4. #include "mist-conf-const.h"    //mist 配置

  5. #ifndef MIST_CONF_NETSTACK
  6. #define MIST_CONF_NETSTACK (MIST_CONF_NULLRDC | MIST_CONF_AES)  //mist 配置
  7. #endif /* MIST_CONF_NETSTACK */

  8. #include "mist-default-conf.h"  //

  9. #define NETSTACK_CONF_RDC_CHANNEL_CHECK_RATE 8       //RDC信道扫描
  10. #define NULLRDC_CONF_802154_AUTOACK 1  
  11. #define NETSTACK_CONF_FRAMER  framer_802154          //Framer定义
  12.    
  13. //网络层定义
  14. #define NETSTACK_CONF_NETWORK sicslowpan_driver      //使用sicslowpan(IPV6)

  15. #define RIMESTATS_CONF_ENABLED                      1
  16. #define RIMESTATS_CONF_ON                      1


  17. #if WITH_UIP6                     
  18. /* Network setup for IPv6 */
  19. #define NETSTACK_CONF_NETWORK sicslowpan_driver      //使用sicslowpan(IPV6)

  20. /* Specify a minimum packet size for 6lowpan compression to be
  21.    enabled. This is needed for ContikiMAC, which needs packets to be
  22.    larger than a specified size, if no ContikiMAC header should be
  23.    used. */
  24. #define SICSLOWPAN_CONF_COMPRESSION_THRESHOLD 0
  25. //#define SICSLOWPAN_CONF_MAC_MAX_PAYLOAD        40
  26. #define CONTIKIMAC_CONF_WITH_CONTIKIMAC_HEADER 0

  27. #define CXMAC_CONF_ANNOUNCEMENTS         0   //RDC驱动机制--CXMAC  
  28. #define XMAC_CONF_ANNOUNCEMENTS          0   //RDC驱动机制--XMAC

  29. #ifndef QUEUEBUF_CONF_NUM
  30. #define QUEUEBUF_CONF_NUM                8  //消息队列
  31. #endif

  32. #else /* WITH_UIP6 */
  33. /* Network setup for non-IPv6 (rime). */
  34. #error This platform is not yet tested without IPv6
  35. #define NETSTACK_CONF_NETWORK rime_driver  //没有使用IPV6 ,而是rime协议

  36. #define COLLECT_CONF_ANNOUNCEMENTS       1  //RDC驱动机制--COLLECT
  37. #define CXMAC_CONF_ANNOUNCEMENTS         0  //RDC驱动机制--CXMAC
  38. #define XMAC_CONF_ANNOUNCEMENTS          0  //RDC驱动机制--XMAC
  39. #define CONTIKIMAC_CONF_ANNOUNCEMENTS    0  //RDC驱动机制--CONTIKIMAC

  40. #define CONTIKIMAC_CONF_COMPOWER         1
  41. #define XMAC_CONF_COMPOWER               1
  42. #define CXMAC_CONF_COMPOWER              1

  43. #ifndef COLLECT_NEIGHBOR_CONF_MAX_COLLECT_NEIGHBORS    //发现邻居
  44. #define COLLECT_NEIGHBOR_CONF_MAX_COLLECT_NEIGHBORS     32
  45. #endif /* COLLECT_NEIGHBOR_CONF_MAX_COLLECT_NEIGHBORS */

  46. #ifndef QUEUEBUF_CONF_NUM
  47. #define QUEUEBUF_CONF_NUM                16             //消息队列
  48. #endif /* QUEUEBUF_CONF_NUM */

  49. #ifndef TIMESYNCH_CONF_ENABLED                          //时间同步
  50. #define TIMESYNCH_CONF_ENABLED           0
  51. #endif /* TIMESYNCH_CONF_ENABLED */

  52. #endif /* WITH_UIP6 */

  53. /* A trick to resolve a compilation error with IAR. */
  54.    /*一个来解决IAR编译错误的技巧。 */
  55. #ifdef __ICCARM__
  56. #define UIP_CONF_DS6_AADDR_NBU              1
  57. #endif

  58. /*------------------------------------------------------------------------*/
  59. #ifndef RF_CHANNEL                               //无线信道配置
  60. #define RF_CHANNEL              26
  61. #endif /* RF_CHANNEL */
  62.    
  63. //RDC驱动机制--CONTIKIMAC 广播周期
  64. #define CONTIKIMAC_CONF_BROADCAST_RATE_LIMIT 0

  65. #define IEEE802154_CONF_PANID       0xABCD       //PANID

  66. #define SHELL_VARS_CONF_RAM_BEGIN 0x1100        //Shell
  67. #define SHELL_VARS_CONF_RAM_END 0x2000

  68. #define PROFILE_CONF_ON 0                //配置文件
  69. #ifndef ENERGEST_CONF_ON
  70. #define ENERGEST_CONF_ON 1
  71. #endif /* ENERGEST_CONF_ON */
  72.    
  73. // 动态模块加载
  74. #define ELFLOADER_CONF_TEXT_IN_ROM 0
  75. #ifndef ELFLOADER_CONF_DATAMEMORY_SIZE
  76. #define ELFLOADER_CONF_DATAMEMORY_SIZE 0x400
  77. #endif /* ELFLOADER_CONF_DATAMEMORY_SIZE */
  78. #ifndef ELFLOADER_CONF_TEXTMEMORY_SIZE
  79. #define ELFLOADER_CONF_TEXTMEMORY_SIZE 0x800
  80. #endif /* ELFLOADER_CONF_TEXTMEMORY_SIZE */

  81. //AODV(Ad hoc on-demand distance vector routing)是一种源驱动路由协议
  82. //按需平面距离矢量路由协议
  83. #define AODV_COMPLIANCE
  84. #define AODV_NUM_RT_ENTRIES 32

  85. #define WITH_ASCII 1
  86. //进程配置
  87. #define PROCESS_CONF_NUMEVENTS 8
  88. #define PROCESS_CONF_STATS 1
  89. /*#define PROCESS_CONF_FASTPOLL    4*/
  90. /*-------------------------------------------------------------------------------*/

  91. /*-------------------------------------------------------------------------------*/
  92. #ifdef WITH_UIP6   //ipv6 网络配置

  93. #define RIMEADDR_CONF_SIZE              8   //节点地址rimeaddr_node_addr长度(字节)

  94. #define UIP_CONF_LL_802154              1
  95. #define UIP_CONF_LLH_LEN                0

  96. #define UIP_CONF_ROUTER                 1   //ROUTER
  97. #ifndef UIP_CONF_IPV6_RPL
  98. #define UIP_CONF_IPV6_RPL               1   //IPV6_RPL
  99. #endif /* UIP_CONF_IPV6_RPL */

  100. /* configure number of neighbors and routes */
  101. #ifndef UIP_CONF_DS6_NBR_NBU
  102. #define UIP_CONF_DS6_NBR_NBU     30         //邻居节点
  103. #endif /* UIP_CONF_DS6_NBR_NBU */
  104. #ifndef UIP_CONF_DS6_ROUTE_NBU
  105. #define UIP_CONF_DS6_ROUTE_NBU   30         //路由节点
  106. #endif /* UIP_CONF_DS6_ROUTE_NBU */

  107. #define UIP_CONF_ND6_SEND_RA    0
  108. #define UIP_CONF_ND6_REACHABLE_TIME     600000  //可达
  109. #define UIP_CONF_ND6_RETRANS_TIMER      10000   //重传

  110. #define UIP_CONF_IPV6                   1
  111. #ifndef UIP_CONF_IPV6_QUEUE_PKT
  112. #define UIP_CONF_IPV6_QUEUE_PKT         0
  113. #endif /* UIP_CONF_IPV6_QUEUE_PKT */
  114. #define UIP_CONF_IPV6_CHECKS            1       //校验   

  115. #define UIP_CONF_IPV6_REASSEMBLY        0       //重新装配
  116. #define UIP_CONF_NETIF_MAX_ADDRESSES    3
  117. #define UIP_CONF_ND6_MAX_PREFIXES       3      //前缀
  118. #define UIP_CONF_ND6_MAX_NEIGHBORS      4      //邻居   

  119. #define UIP_CONF_ND6_MAX_DEFROUTERS     2      //默认路由
  120. #define UIP_CONF_IP_FORWARD             0
  121. #ifndef UIP_CONF_BUFFER_SIZE
  122. #define UIP_CONF_BUFFER_SIZE    280           //IP 缓冲
  123. #endif

  124.    //SICSLOWPAN 压缩方式
  125. #define SICSLOWPAN_CONF_COMPRESSION_IPV6        0
  126. #define SICSLOWPAN_CONF_COMPRESSION_HC1         1
  127. #define SICSLOWPAN_CONF_COMPRESSION_HC01        2
  128. #define SICSLOWPAN_CONF_COMPRESSION             SICSLOWPAN_COMPRESSION_HC06
  129. #ifndef SICSLOWPAN_CONF_FRAG
  130. #define SICSLOWPAN_CONF_FRAG                    1

  131. /* Unit: 1/16th second. 16 => 1.0s timeout */
  132. #undef SICSLOWPAN_CONF_MAXAGE
  133. #define SICSLOWPAN_CONF_MAXAGE                  16

  134. #if (MIST_CONF_NETSTACK & MIST_CONF_DROWSIE_MULTICHANNEL)
  135. /* We need to increase the fragmentation timeout, as the multichannel protocol may transmit
  136. * the same fragment on two channels, causing up to 0.6s delay inbetween fragments. */
  137. //   多通道发送时,增加碎片timeout
  138. #undef SICSLOWPAN_CONF_MAXAGE
  139. #define SICSLOWPAN_CONF_MAXAGE                  12
  140. #endif /* (MIST_CONF_NETSTACK & MIST_CONF_DROWSIE_MULTICHANNEL) */

  141. #endif /* SICSLOWPAN_CONF_FRAG */
  142. #define SICSLOWPAN_CONF_CONVENTIONAL_MAC     1        //常规
  143. #define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS       2
  144. #ifndef SICSLOWPAN_CONF_MAX_MAC_TRANSMISSIONS
  145. #define SICSLOWPAN_CONF_MAX_MAC_TRANSMISSIONS   5
  146. #endif /* SICSLOWPAN_CONF_MAX_MAC_TRANSMISSIONS */
  147.    
  148. #else /* WITH_UIP6 */

  149. #define UIP_CONF_IP_FORWARD      1
  150. #define UIP_CONF_BUFFER_SIZE     108
  151. #endif /* WITH_UIP6 */
  152. /*-------------------------------------------------------------------------------*/

  153. /*-------------------------------------------------------------------------------*/
  154. #define UIP_CONF_ICMP_DEST_UNREACH 1    //ICMP

  155. #define UIP_CONF_DHCP_LIGHT             //DHCP
  156. #define UIP_CONF_LLH_LEN         0
  157.    
  158. #ifndef UIP_CONF_RECEIVE_WINDOW
  159. #define UIP_CONF_RECEIVE_WINDOW  47    //
  160. #endif
  161. #ifndef  UIP_CONF_TCP_MSS
  162. #define UIP_CONF_TCP_MSS         47    //
  163. #endif
  164.    
  165. #define UIP_CONF_MAX_CONNECTIONS 4     //最大连接数
  166. #define UIP_CONF_MAX_LISTENPORTS 8       //最大监听端口数
  167. #define UIP_CONF_UDP_CONNS       12    //
  168. #define UIP_CONF_FWCACHE_SIZE    30    //防火墙
  169. #define UIP_CONF_BROADCAST       1     //广播
  170. #define UIP_ARCH_IPCHKSUM        0
  171. #define UIP_CONF_UDP             1
  172. #define UIP_CONF_UDP_CHECKSUMS   1
  173. #define UIP_CONF_PINGADDRCONF    0
  174. #define UIP_CONF_LOGGING         0

  175. #define UIP_CONF_TCP_SPLIT       0
  176. /*-------------------------------------------------------------------------------*/
  177. /* include the project config */
  178. /* PROJECT_CONF_H might be defined in the project Makefile */
  179. #ifdef PROJECT_CONF_H
  180. #include PROJECT_CONF_H          //工程配置头文件
  181. #endif /* PROJECT_CONF_H */
  182. /*-------------------------------------------------------------------------------*/
  183. #if ((MIST_CONF_NETSTACK) & MIST_CONF_AES)   //网络加密
  184. #ifndef NETSTACK_AES_KEY
  185. #define NETSTACK_AES_KEY "thingsquare mist" /* 16 bytes */
  186. #define NETSTACK_AES_KEY_DEFAULT 1
  187. #endif /* NETSTACK_AES_KEY */
  188. #endif /* ((MIST_CONF_NETSTACK) & MIST_CONF_AES) */
  189. /*-------------------------------------------------------------------------------*/
  190. #endif /* CONTIKI_CONF_H */
复制代码


沐紫 回答时间:2014-11-18 14:10:19
谢过楼主!
stary666 回答时间:2015-1-22 12:35:09
:)
holts1 回答时间:2015-1-22 13:11:48
这个太复杂了
wxh0000mm 回答时间:2015-1-22 13:15:54
学习一下
happy1993 回答时间:2016-5-5 16:40:32
楼主请问你是用什么工具开发的?keil?IAR?还是直接在linux下makefile?

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版