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

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
这个太复杂了
子曰小玖 回答时间:2015-1-22 13:15:54
学习一下
happy1993 回答时间:2016-5-5 16:40:32
楼主请问你是用什么工具开发的?keil?IAR?还是直接在linux下makefile?

所属标签

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