网页服务器开发版,在FRDM-K64F开发板上搭建简易WEB服务器

飞思卡尔FRDM-K64F开发板非常适合用于以太网试验。但是在网上并没有在该开发板上快速搭建简易WEB服务器的教程。以下的内容将帮助大家在FRDM-K64F开发板上建立一个HTTP服务器,该服务器带有一个索引页以及支持打印一些随机数的简单CGI脚本的页面。这是使用该电路板开发任何基于网络的小工具的绝对最低的基础。

52f10ccd9bac9d7299beb58f93885e4d.gif

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驱动程序;

52f10ccd9bac9d7299beb58f93885e4d.gif

packs1.jpg (98.09 KB, 下载次数: 10)

2017-2-16 15:02 上传

选择Kinetis SDK的框架包:

52f10ccd9bac9d7299beb58f93885e4d.gif

packs2.jpg (115.52 KB, 下载次数: 20)

2017-2-16 15:02 上传

选择Kinetis SDK HAL驱动程序:

52f10ccd9bac9d7299beb58f93885e4d.gif

packs3.jpg (121.14 KB, 下载次数: 15)

2017-2-16 15:02 上传

选择其他SDK包:

52f10ccd9bac9d7299beb58f93885e4d.gif

packs4.jpg (42.71 KB, 下载次数: 14)

2017-2-16 15:02 上传

最后,选择网络包:

52f10ccd9bac9d7299beb58f93885e4d.gif

packs5.jpg (85.64 KB, 下载次数: 19)

2017-2-16 15:02 上传

在项目浏览器中添加两个组:“SRC”和“Web Files”:

52f10ccd9bac9d7299beb58f93885e4d.gif

project1.jpg (16.45 KB, 下载次数: 12)

2017-2-16 15:02 上传

在CMSIS组RTX_Conf_CM.C文件中配置RTOS:

52f10ccd9bac9d7299beb58f93885e4d.gif

rtxconf.jpg (51.93 KB, 下载次数: 16)

2017-2-16 15:02 上传

在DEVICE组中编辑RTE_Device.h,启用MAC并选择RMII模式,并选择OSCERCLK作为时钟源:

52f10ccd9bac9d7299beb58f93885e4d.gif

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中。输入本地主机名、内存池大小,启用系统服务和调整核心线程的堆栈大小:

52f10ccd9bac9d7299beb58f93885e4d.gif

netconfig.jpg (25.73 KB, 下载次数: 15)

2017-2-16 15:01 上传

在文件Net_Config_Eth_0.h中编辑以太网配置,其地址适用于IP v4和v6的LAN:

52f10ccd9bac9d7299beb58f93885e4d.gif

ethconfig.jpg (73.74 KB, 下载次数: 21)

2017-2-16 15:01 上传

在Net_Config_Legacy.h中启用所有传统回调。这是使能与旧版API的向后兼容性所必需的。在文件Net_Config_TCP.h中配置TCP层:

52f10ccd9bac9d7299beb58f93885e4d.gif

tcpconfig.jpg (27.48 KB, 下载次数: 13)

2017-2-16 15:02 上传

在文件Net_Config_UDP.h中将UDP套接字调整为5

编辑文件Net_Config_HTTP_Server.h中的HTTP服务器配置:

52f10ccd9bac9d7299beb58f93885e4d.gif

httpconf.jpg (34.27 KB, 下载次数: 15)

2017-2-16 15:01 上传

最后一步设置是在项目设置的选项卡Utilities和Configure Image File Processing (FCARM)中:输入web.c作为输出文件,并选择放置生成的源文件的文件组。定义图像文件的根文件夹。 “图像”文件是具有网页内容的所有文件。 FCARM将自动将这些文件转换为目标闪存中的阵列。

52f10ccd9bac9d7299beb58f93885e4d.gif

fcarm.jpg (58.22 KB, 下载次数: 12)

2017-2-16 15:01 上传

thread-670-1-1.html

现在是时候添加一些代码。

将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 server

The web server is working :)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值