服务器开发版,在FRDM"/>
网页服务器开发版,在FRDM
飞思卡尔FRDM-K64F开发板非常适合用于以太网试验。但是在网上并没有在该开发板上快速搭建简易WEB服务器的教程。以下的内容将帮助大家在FRDM-K64F开发板上建立一个HTTP服务器,该服务器带有一个索引页以及支持打印一些随机数的简单CGI脚本的页面。这是使用该电路板开发任何基于网络的小工具的绝对最低的基础。
frdm-k64f120m-board-with-bluetooth-and-nrf24l01.png (743.83 KB, 下载次数: 11)
2017-2-16 15:01 上传
在开发之前,建议仔细阅读一下这篇文章:HTTP server demo application。首先创建一个新项目,选择MK64FN1M0VLL12微控制器并保留默认设置,除了选项卡Utilities和Configure Image File Processing (FCARM)。 后面会详细介绍这些内容。接下来,选择Web服务器应用程序所有必需的包:CMSIS、以太网MAC和PHY的CMSIS驱动程序;
packs1.jpg (98.09 KB, 下载次数: 10)
2017-2-16 15:02 上传
选择Kinetis SDK的框架包:
packs2.jpg (115.52 KB, 下载次数: 20)
2017-2-16 15:02 上传
选择Kinetis SDK HAL驱动程序:
packs3.jpg (121.14 KB, 下载次数: 15)
2017-2-16 15:02 上传
选择其他SDK包:
packs4.jpg (42.71 KB, 下载次数: 14)
2017-2-16 15:02 上传
最后,选择网络包:
packs5.jpg (85.64 KB, 下载次数: 19)
2017-2-16 15:02 上传
在项目浏览器中添加两个组:“SRC”和“Web Files”:
project1.jpg (16.45 KB, 下载次数: 12)
2017-2-16 15:02 上传
在CMSIS组RTX_Conf_CM.C文件中配置RTOS:
rtxconf.jpg (51.93 KB, 下载次数: 16)
2017-2-16 15:02 上传
在DEVICE组中编辑RTE_Device.h,启用MAC并选择RMII模式,并选择OSCERCLK作为时钟源:
eth1.jpg (17.71 KB, 下载次数: 13)
2017-2-16 15:01 上传
编辑hardware_init.c文件并将以下代码放在该文件中:
#include "board.h"
#include "pin_mux.h"
#include "fsl_clock_manager.h"
#include "fsl_debug_console.h"
void hardware_init(void) {
/* Disable Memory Protection Unit */
MPU->CESR &= ~MPU_CESR_VLD_MASK;
/* enable clock for PORTs */
CLOCK_SYS_EnablePortClock(PORTA_IDX);
CLOCK_SYS_EnablePortClock(PORTB_IDX);
CLOCK_SYS_EnablePortClock(PORTC_IDX);
CLOCK_SYS_EnablePortClock(PORTD_IDX);
CLOCK_SYS_EnablePortClock(PORTE_IDX);
configure_enet_pins (0);
/* Setup board clock source. */
g_xtal0ClkFreq = 50000000U;
g_xtalRtcClkFreq = 32768U;
/* Init board clock */
BOARD_ClockInit();
dbg_uart_init();
}复制代码
在NetWork组中编辑文件Net_Config.c中。输入本地主机名、内存池大小,启用系统服务和调整核心线程的堆栈大小:
netconfig.jpg (25.73 KB, 下载次数: 15)
2017-2-16 15:01 上传
在文件Net_Config_Eth_0.h中编辑以太网配置,其地址适用于IP v4和v6的LAN:
ethconfig.jpg (73.74 KB, 下载次数: 21)
2017-2-16 15:01 上传
在Net_Config_Legacy.h中启用所有传统回调。这是使能与旧版API的向后兼容性所必需的。在文件Net_Config_TCP.h中配置TCP层:
tcpconfig.jpg (27.48 KB, 下载次数: 13)
2017-2-16 15:02 上传
在文件Net_Config_UDP.h中将UDP套接字调整为5
编辑文件Net_Config_HTTP_Server.h中的HTTP服务器配置:
httpconf.jpg (34.27 KB, 下载次数: 15)
2017-2-16 15:01 上传
最后一步设置是在项目设置的选项卡Utilities和Configure Image File Processing (FCARM)中:输入web.c作为输出文件,并选择放置生成的源文件的文件组。定义图像文件的根文件夹。 “图像”文件是具有网页内容的所有文件。 FCARM将自动将这些文件转换为目标闪存中的阵列。
fcarm.jpg (58.22 KB, 下载次数: 12)
2017-2-16 15:01 上传
现在是时候添加一些代码。
将main.c添加到SRC组中:
#include "cmsis_os.h" /* CMSIS RTOS definitions */
#include "rl_net.h" /* Network definitions */
#include "board.h" /* BSP definitions */
/*----------------------------------------------------------------------------
Main Thread 'main': Run Network
*---------------------------------------------------------------------------*/
int main (void) {
hardware_init();
net_initialize ();
while(1) {
net_main ();
osThreadYield ();
}
}复制代码
在文件index.htm中添加主网页并将其添加到“Web Files”组中:
S54MTB Testing Web serverThe web server is working :)
更多推荐
网页服务器开发版,在FRDM
发布评论