⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 600c9dd31cb9001c1ebacfc9fc0bb330

📁 基于UCOS的嵌入式系统的应用
💻
字号:
/******************************************************************************* Copyright ? 2004 Altera Corporation, San Jose, California, USA.             ** All rights reserved. All use of this software and documentation is          ** subject to the License Agreement located at the end of this file below.     ********************************************************************************* Author - PRR/JRK                                                            **                                                                             ** This is an example webs erver using LWIP on the MicroC/OS-II RTOS.          ** It is in no way a complete implementation of a webserver, it is enough to   ** serve up our demo pages and that's it.                                      **                                                                             ** LWIP has two API's, a callback interface and "standard" sockets this        ** example uses the sockets interface. A good introduction to sockets          ** programming is the book Unix Network Programming by Richard Stevens.        **                                                                             ** Please refer to file readme.txt for notes on this software example.         *******************************************************************************/#include <stdio.h>#include <errno.h>#include <ctype.h>#include "includes.h"#include "alt_lwip_dev.h"#include "lwip/sys.h"#include "user.h"// hychu#include "dm9000.h"#include "lcd.h"ALTERA_AVALON_DM9K_INSTANCE(DM9000A, dm9k);void user_task(void * pvoid){  static u_long val=0;  printf("user_task is called\n");  // simply doing sanity check    for(;;)  {    val ^= (1<<17);    IOWR(LED_RED_BASE, 0, val);    usleep(500000);  } // of forever loop}#ifndef LWIP  #error This Web Server requires the Lightweight IP Software Component.#endif#ifndef __ucosii__  #error This Web Server requires the UCOS II IP Software Component.#endif#ifndef  RO_ZIPFS  #error This Web Server requires the Altera Read only Zip filing system.#endif/* * A MicroC/OS-II message box will be used to communicate between telnet * and board LED control tasks. */OS_EVENT *attained_ip_address_sem;/* * tcpip_init_done() *  * This function is called once the LWIP stack is alive, as specified in our * lwip_stack_init() call in main(), below. * * We tell it about each of our network devices and start the application &  * timer threads as appropriate. */static void tcpip_init_done(void *arg){// hychu  ALTERA_AVALON_DM9K_INIT(dm9k);  printf("ALTERA_AVALON_DM9K_INIT is finished\n");  /*    * At this point LWIP has been initialized, but the Ethernet interface has   * not; the initialise_lwip_devices() call does so, adding in MicroC-OS/II   * threads for low-level Ethernet MAC interface and TCP protocol timer.   */  if (!lwip_devices_init(ETHER_PRIO))    die_with_error("[tcpip_init_done] Fatal: Can't add ethernet interface!");   printf("lwip_devices_init() is over\n");     attained_ip_address_sem = OSSemCreate(1);    /*    * If DHCP is enabled, activate a thread for the 120-second long time period   * that is allowed to attempt IP address aquisistion via DHCP. The    * dchp_timeout_task() routine is in this example design's   * "network_utilities.c" file.   */#if LWIP_DHCP == 1//++ hychu  if(!(IORD(SWITCH_PIO_BASE, 0) & (1<<17))) sys_thread_new(dhcp_timeout_task, NULL, DHCP_TMR_PRIO);//-- hychu  //if (!sys_thread_new(dhcp_timeout_task, NULL, DHCP_TMR_PRIO))    die_with_error("[tcpip_init_done] Fatal: Can't add DHCP timer task!");#endif /* LWIP_DHCP */    /*    * Add any application task(s) that rely on LWIP:   *     * http_task() -- Creates HTTP listening sockets, manages incoming   *                connection requests, and handles all web server duties.   */  if(!sys_thread_new(http_task, NULL, HTTP_PRIO))    die_with_error("[tcpip_init_done] Fatal: Can't add HTTP task!");}int main (){// hychu  LCD_Init();  printf("\n\nWeb Server starting up\n\n");    /*    * Our very first call in an LWIP example design is to start up the LWIP    * stack. We specify a MicroC/OS-II thread priority for the tcp_ip thread,   * as well as a call-back routine, tcpip_init_done(), which is called once   * the stack is alive and well.   */  lwip_stack_init(TCPIP_PRIO, tcpip_init_done, 0);    /*   * As with all MicroC/OS-II designs, once the initial thread(s) and    * associated RTOS resources are declared, we start the RTOS. That's it!   */// hychu  sys_thread_new(user_task, NULL, SANITY_PRIO);  OSStart();  return 0;}/*******************************************************************************                                                                             ** License Agreement                                                           **                                                                             ** Copyright (c) 2004 Altera Corporation, San Jose, California, USA.           ** All rights reserved.                                                        **                                                                             ** Permission is hereby granted, free of charge, to any person obtaining a     ** copy of this software and associated documentation files (the "Software"),  ** to deal in the Software without restriction, including without limitation   ** the rights to use, copy, modify, merge, publish, distribute, sublicense,    ** and/or sell copies of the Software, and to permit persons to whom the       ** Software is furnished to do so, subject to the following conditions:        **                                                                             ** The above copyright notice and this permission notice shall be included in  ** all copies or substantial portions of the Software.                         **                                                                             ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR  ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,    ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING     ** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER         ** DEALINGS IN THE SOFTWARE.                                                   **                                                                             ** This agreement shall be governed in all respects by the laws of the State   ** of California and by the laws of the United States of America.              ** Altera does not recommend, suggest or require that this reference design    ** file be used in conjunction or combination with any other product.          *******************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -