找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2935|回复: 3
打印 上一主题 下一主题
收起左侧

STM32F4移植FreeRTOS及FreeRTOSTCPIP工程源码

[复制链接]
跳转到指定楼层
楼主
ID:190832 发表于 2020-5-7 17:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Keil MDK下的STM32F407移植FreeRTOS及FreeRTOSTCPIP,不是lwip,是FreeRTOS自己的TCPIP协议栈。其他单片机可供参考。

单片机源程序如下:
  1. #include "stm32f4xx.h"
  2. #include "public.h"
  3. #include "mQueue.h"
  4. #include "FreeRTOS.h"
  5. #include "task.h"
  6. #include "FreeRTOS_IP.h"
  7. #include "LAN8720.h"

  8. extern ETH_DMADESCTypeDef DMARxDscrTab[ETH_RXBUFNB];        //stm32f4x7_eth.c
  9. extern ETH_DMADESCTypeDef DMATxDscrTab[ETH_TXBUFNB];
  10. extern uint8_t Rx_Buff[ETH_RX_BUF_SIZE * ETH_RXBUFNB];
  11. extern uint8_t Tx_Buff[ETH_TX_BUF_SIZE * ETH_TXBUFNB];

  12. extern NetworkParm networkParm;  //LAN8720.c

  13. int main(void)
  14. {
  15.         delay_ms(100);
  16.         
  17.         mNVIC_config();
  18.         mIWDG_config(6, 625);  //4s看门狗
  19.         mUSART1_config(921600);  //打印使用
  20.         mPrintf("start...\r\n");

  21.         mRNG_Init();  //初始化随机数
  22.         
  23.         LAN8720_Init();  //初始化LAN8720
  24.         ETH_MACDMA_Config();  //配置STM32以太网控制器
  25.         ETH_MACAddressConfig(ETH_MAC_Address0, networkParm.mac);  //向STM32F4的MAC地址寄存器中写入MAC地址
  26.         ETH_DMATxDescChainInit(DMATxDscrTab, Tx_Buff, ETH_TXBUFNB);
  27.         ETH_DMARxDescChainInit(DMARxDscrTab, Rx_Buff, ETH_RXBUFNB);
  28.   for(u8 i = 0; i < ETH_TXBUFNB; i++)         //使能ipv4发送帧校验和生成
  29.         {
  30.     /* FreeRTOSTCPIP只支持硬件生成ipv4校验和,不支持TCP/UDP/ICMP校验和 */
  31.                 ETH_DMATxDescChecksumInsertionConfig(&DMATxDscrTab[i], ETH_DMATxDesc_ChecksumIPV4Header);
  32.         }
  33.         ETH_Start();  //开启MAC和DMA
  34.         
  35.         hange_vUSE_DHCP = networkParm.dhcp;  /* 见hange_vUSE_DHCP定义 */
  36.         FreeRTOS_IPInit(networkParm.ip,
  37.                                                                         networkParm.sub,
  38.                                                                         networkParm.gw,
  39.                         networkParm.domainS1,
  40.                                                                         networkParm.mac);
  41.         
  42.         xTaskCreate(ethCardRxTask,
  43.                     "ethCardRxTask",
  44.                     ethCardRxStackSize,
  45.                     (void* )NULL,
  46.                     ethCardRxPrio,
  47.                     ðCardRxHandler);

  48.         vTaskStartScheduler();  //启动任务调度

  49.   while(1)  //真执行这里也就崩了
  50.         {
  51.                 taskENTER_CRITICAL();  //进临界状态,关闭所有中断
  52.           mPrintf("OS没启动或崩了\r\n");
  53.     STM32_SYSTEM_RESET;
  54.         }
  55. //        return 0;
  56. }
复制代码

所有程序51hei提供下载:
STM32F407-FreeRTOS TCPIP.7z (697.48 KB, 下载次数: 80)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:609322 发表于 2022-10-29 08:18 | 只看该作者
老大,FREERTOS也有自己的IP栈啊?   我只知道LWIP和    UCOS 的IP栈
回复

使用道具 举报

板凳
ID:190832 发表于 2022-10-29 20:55 | 只看该作者
LI-GONG-004 发表于 2022-10-29 08:18
老大,FREERTOS也有自己的IP栈啊?   我只知道LWIP和    UCOS 的IP栈

当然了,2016年出的,亚马逊出品,绝对好用
回复

使用道具 举报

地板
ID:829222 发表于 2023-10-30 09:45 | 只看该作者
不错,应该可以用来做串口服务器,有时间的话,我下载下来看看!谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表