<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Spartan 6上嵌入式網(wǎng)絡(luò )服務(wù)系統設計實(shí)現

Spartan 6上嵌入式網(wǎng)絡(luò )服務(wù)系統設計實(shí)現

——
作者:楊定定 施慧彬 錢(qián)巨 李依桐 時(shí)間:2013-08-28 來(lái)源:電子產(chǎn)品世界 收藏

  以下先介紹Xilkernel系統內核主要參數的設置以及多線(xiàn)程的調用方式:

本文引用地址:http://dyxdggzs.com/article/164385.htm

  PARAMETER OS_NAME = xilkernel
  PARAMETER PTHREAD_STACK_SIZE = 8192
  PARAMETER CONFIG_PTHREAD_MUTEX = true
  PARAMETER CONFIG_TIME = true
  PARAMETER CONFIG_SEMA = true
  PARAMETER MAX_SEM = 50
  PARAMETER MAX_SEM_WAITQ = 20
  PARAMETER ENHANCED_FEATURES = true
  PARAMETER CONFIG_YIELD = true
  PARAMETER STATIC_PTHREAD_TABLE = ((run_kerl,1))//系統訪(fǎng)問(wèn)入口函數run_kerl()

  Xilkernel系統使用多線(xiàn)程通信的方法,通過(guò)調用相應的線(xiàn)程來(lái)實(shí)現對應的功能,如下述建立初始線(xiàn)程,訪(fǎng)問(wèn)network_thread()函數:

  sys_thread_new("NW_THREAD", network_thread, NULL,THREAD_STACKSIZE, DEFAULT_THREAD_PRIO);

  通過(guò)下述線(xiàn)程調用HTTP WEB功能,實(shí)現功能的選擇調用,提高資源的利用率:

  sys_thread_new("httpd", web_application_thread, 0, THREAD_STACKSIZE,DEFAULT_THREAD_PRIO);

  文件系統建立

  下面介紹下本文文件系統的建立步驟:

  首先,使用Xilinx ISE集成工具中的Xilinx Bash Shell,切換到原始文件所在的文件夾,使用命令:

  mfsgen -cvbf ../image.mfs 2048 css images js yui generate-mfs index.html,產(chǎn)生所需要的文件系統鏡像;

  其次,通過(guò)在庫文件Xilmfs中設置文件鏡像的存儲訪(fǎng)問(wèn)地址等信息,如下xilmfs庫文件的設置:

  BEGIN LIBRARY
  PARAMETER LIBRARY_NAME = xilmfs
  PARAMETER LIBRARY_VER = 1.00.a
  PARAMETER PROC_INSTANCE = microblaze_0
  PARAMETER NUMBYTES = 400000
  PARAMETER BASE_ADDRESS = 0xC4000000
  PARAMETER INIT_TYPE = MFSINIT_IMAGE
  PARAMETER NEED_UTILS = true
  END

  最后,在xmd下執行

  dow -data F:/EDK_lab/Ethernet13_2AXI/SDK/memfs/image.mfs 0xc4000000命令,下載文件系統鏡像到指定地址上,在軟件程序中調用xilmfs庫文件中定義的mfs_init_fs(),mfs_exists_file()等庫函數即可確定文件系統是否成功建立,同時(shí)文件系統也可供后續FTP設計中的文件上傳和下載作存儲器使用。

  FTP文件傳輸設計

  本文主要是通過(guò)上傳和下載文件到MCB_DDR2上的文件系統中,通過(guò)調用文件系統中的mfs_file_open(),mfs_file_read(),mfs_file_write()以及mfs_file_close()等庫函數進(jìn)行文件系統的訪(fǎng)問(wèn)。

  以下是對130庫文件的設置:

  BEGIN LIBRARY
  PARAMETER LIBRARY_NAME = 130
  PARAMETER LIBRARY_VER = 3.01.a
  PARAMETER PROC_INSTANCE = microblaze_0
  PARAMETER API_MODE = SOCKET_API
  END

  由以上的設置可以看出本文是基于Xilkernel內核系統的Socket API編程來(lái)實(shí)現通信,設置MCB_DDR2作為文件存儲系統的存儲器進(jìn)行文件的存儲和調用。

  case TFTP_RRQ://讀文件

  tftp_extract_filename(fname, args->request);printf("TFTP RRQ (read request): %srn", fname);
  tftp_process_read(sd, &args->from, fname);break;
  case TFTP_WRQ://寫(xiě)文件
  tftp_extract_filename(fname, args->request);printf("TFTP WRQ (write request): %srn", fname);
  tftp_process_write(sd, &args->from, fname);break;

  上述TFTP上傳和下載程序就是采用Socket API編程,調用130庫中的庫函數編程來(lái)實(shí)現文件傳輸。

tcp/ip相關(guān)文章:tcp/ip是什么




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>