芯片解密,芯片破解,IC解密,单片机解密,MCU解密,STM解密

飞芯科技提供芯片解密,芯片破解,IC解密,单片机解密,MCU解密,STM解密逆向服务

STM32 wifi无线遥控器设计单片机解密

单片机解密STM32 wifi无线遥控器设计STM32MARVELL88芯片主控

单片机解密单片机源程序如下:

  1. #define DEBUG
  2. #include "drivers.h"
  3. #include "app.h"
  4. #include "api.h"

  5. #include "cfg80211.h"
  6. #include "defs.h"
  7. #include "type.h"
  8. #include "types.h"

  9. #include "moal_sdio.h"
  10. #include "lwip/pbuf.h"
  11. #include "lwip/sys.h"
  12. #include "wpa.h"

  13. #include "moal_main.h"
  14. #include "moal_uap.h"
  15. #include "moal_uap_priv.h"
  16. #include "mlan_ioctl.h"

  17. #include "oled.h"

  18. /*
  19. *分为station和ap两个设备,其接口函数是不一样的
  20. *所以在不同的模式下我们选择相对应的设备进行操作
  21. *wifi_dev指向当前设备
  22. */
  23. struct net_device *sta_wifi_dev = NULL;
  24. struct net_device *ap_wifi_dev = NULL;
  25. struct net_device *direct_wifi_dev = NULL;

  26. struct net_device *wifi_dev = NULL;

  27. struct net_device *get_wifi_dev()
  28. {
  29.         return wifi_dev;
  30. }

  31. int is_hw_ok()
  32. {
  33.         return wifi_dev?1:0;
  34. }

  35. /**
  36. * @brief  设置wifi模式,只是切换模式,不对ap参数进行配置
  37. * @param  type : MODE_AP, MODE_STATION, MODE_ADHOC
  38. * @retval ok: 0, err: -1
  39. */
  40. int wifi_set_mode(int type)
  41. {
  42.         int ret = -1;
  43.         int set_type;
  44.         moal_private *priv;
  45.         struct net_device *saved_dev = wifi_dev;

  46.         priv = (moal_private *)wifi_dev->ml_priv;
  47.         //暂不支持ap+sta同时存在,切换模式前先关闭wifi
  48.         if(priv->bss_role == MLAN_BSS_ROLE_UAP)
  49.                 wifi_stop_ap();
  50.         else
  51.                 wifi_disconnect();
  52.         if(0)
  53.                 ;
  54. #ifdef UAP_SUPPORT               
  55.         else if(type == MODE_AP){
  56.                 set_type = NL80211_IFTYPE_AP;
  57.                 wifi_dev = ap_wifi_dev;
  58.                 OLED_ShowString(16,2,"  MODE:AP   ");
  59.                 OLED_ShowString(0,0,"IP:");
  60.                 OLED_ShowString(24,0,"192.168.1.8");
  61.                 p_dbg("IP:192.168.1.8");
  62.         }
  63. #endif
  64. #ifdef STA_SUPPORT       
  65.         else if(type == MODE_STATION){
  66.                 wifi_dev = sta_wifi_dev;
  67.                 set_type = NL80211_IFTYPE_STATION;
  68.                 OLED_ShowString(16,2,"MODE:STATION");
  69.         }

  70.         else if(type == MODE_ADHOC){
  71.                 wifi_dev = sta_wifi_dev;
  72.                 set_type = NL80211_IFTYPE_ADHOC;
  73.                 OLED_ShowString(16,2," MODE:ADHOC ");
  74.         }
  75. #endif
  76. #ifdef WIFI_DIRECT_SUPPORT       
  77.         else if(type == MODE_P2P_GO){
  78.                 wifi_dev = direct_wifi_dev;
  79.                 set_type = NL80211_IFTYPE_P2P_GO;
  80.         }
  81.         else if(type == MODE_P2P_GC){
  82.                 wifi_dev = direct_wifi_dev;
  83.                 set_type = NL80211_IFTYPE_P2P_CLIENT;
  84.         }
  85. #endif
  86.         else{
  87.                 p_err("type %d not support", type);
  88.                 return -1;
  89.         }

  90.         if(wifi_dev == NULL){
  91.                
  92.                 wifi_dev = saved_dev;
  93.                 p_err("%s not support", __FUNCTION__);
  94.                 return -1;
  95.         }

  96.         if(wifi_dev->cfg80211_ops->change_virtual_intf){
  97.                 priv = (moal_private *)wifi_dev->ml_priv;

  98.                 //ap和sta指向相同的change_virtual_intf
  99.                 ret = wifi_dev->cfg80211_ops->change_virtual_intf(priv->wdev->wiphy, wifi_dev, (enum nl80211_iftype)set_type, 0, 0);
  100.                 if(ret != 0)
  101.                 {
  102.                         wifi_dev = saved_dev;
  103.                 }
  104.         }else
  105.                 p_err("%s not support", __FUNCTION__);

  106.         return ret;
  107. }


  108. /**
  109. * @brief  设置硬件的多播、广播、混杂模式
  110. * @param  flags :  IFF_PROMISC        接收所有的包
  111.                                 IFF_ALLMULTI 接收所有的多播包(暂时采用接收所有多播报的简单方式,
  112.                                 不处理多播地址表)

  113. * @retval ok: 0, err: -1
  114. */
  115. int wifi_set_multicast(uint32_t flags)
  116. {
  117.         if(!wifi_dev)
  118.                 return -1;
  119.        
  120.         wifi_dev->flags |= flags;

  121.         if(wifi_dev->netdev_ops && wifi_dev->netdev_ops->ndo_set_multicast_list)
  122.                 wifi_dev->netdev_ops->ndo_set_multicast_list(wifi_dev);
  123.        
  124.         return 0;
  125. }



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.taihedz.cn
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信