国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee
ELEOK
標題:
STM32F4移植FreeRTOS及FreeRTOS TCP/IP工程源碼
[打印本頁]
作者:
路漫漫
時間:
2020-5-21 01:03
標題:
STM32F4移植FreeRTOS及FreeRTOS TCP/IP工程源碼
Keil MDK下的STM32F407移植FreeRTOS及FreeRTOS TCP/IP,不是lwip,是FreeRTOS自己的TCPIP協議棧。其他單片機可供參考。完整源碼:
STM32F407-FreeRTOS TCPIP.7z
(697.48 KB, 售價: 1 E幣)
2020-5-21 01:02 上傳
點擊文件名下載附件
售價: 1 E幣
[記錄]
[
購買
]
部分代碼
#include "stm32f4xx.h"
#include "public.h"
#include "mQueue.h"
#include "FreeRTOS.h"
#include "task.h"
#include "FreeRTOS_IP.h"
#include "LAN8720.h"
extern ETH_DMADESCTypeDef DMARxDscrTab[ETH_RXBUFNB]; //stm32f4x7_eth.c
extern ETH_DMADESCTypeDef DMATxDscrTab[ETH_TXBUFNB];
extern uint8_t Rx_Buff[ETH_RX_BUF_SIZE * ETH_RXBUFNB];
extern uint8_t Tx_Buff[ETH_TX_BUF_SIZE * ETH_TXBUFNB];
extern NetworkParm networkParm; //LAN8720.c
int main(void)
{
delay_ms(100);
mNVIC_config();
mIWDG_config(6, 625); //4s看門狗
mUSART1_config(921600); //打印使用
mPrintf("start...\r\n");
mRNG_Init(); //初始化隨機數
LAN8720_Init(); //初始化LAN8720
ETH_MACDMA_Config(); //配置STM32以太網控制器
ETH_MACAddressConfig(ETH_MAC_Address0, networkParm.mac); //向STM32F4的MAC地址寄存器中寫入MAC地址
ETH_DMATxDescChainInit(DMATxDscrTab, Tx_Buff, ETH_TXBUFNB);
ETH_DMARxDescChainInit(DMARxDscrTab, Rx_Buff, ETH_RXBUFNB);
for(u8 i = 0; i < ETH_TXBUFNB; i++) //使能ipv4發送幀校驗和生成
{
/* FreeRTOSTCPIP只支持硬件生成ipv4校驗和,不支持TCP/UDP/ICMP校驗和 */
ETH_DMATxDescChecksumInsertionConfig(&DMATxDscrTab[i], ETH_DMATxDesc_ChecksumIPV4Header);
}
ETH_Start(); //開啟MAC和DMA
hange_vUSE_DHCP = networkParm.dhcp; /* 見hange_vUSE_DHCP定義 */
FreeRTOS_IPInit(networkParm.ip,
networkParm.sub,
networkParm.gw,
networkParm.domainS1,
networkParm.mac);
xTaskCreate(ethCardRxTask,
"ethCardRxTask",
ethCardRxStackSize,
(void* )NULL,
ethCardRxPrio,
eCardRxHandler);
vTaskStartScheduler(); //啟動任務調度
while(1) //真執行這里也就崩了
{
taskENTER_CRITICAL(); //進臨界狀態,關閉所有中斷
mPrintf("OS沒啟動或崩了\r\n");
STM32_SYSTEM_RESET;
}
// return 0;
}
復制代碼
歡迎光臨 ELEOK (http://m.afoofa.cn/)
Powered by Discuz! X5.0