新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Spartan 6上嵌入式網絡服務系統設計實現

        Spartan 6上嵌入式網絡服務系統設計實現

        ——
        作者:楊定定 施慧彬 錢巨 李依桐 時間:2013-08-28 來源:電子產品世界 收藏

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

        本文引用地址:http://www.104case.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))//系統訪問入口函數run_kerl()

          Xilkernel系統使用多線程通信的方法,通過調用相應的線程來實現對應的功能,如下述建立初始線程,訪問network_thread()函數:

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

          通過下述線程調用HTTP WEB功能,實現功能的選擇調用,提高資源的利用率:

          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,產生所需要的文件系統鏡像;

          其次,通過在庫文件Xilmfs中設置文件鏡像的存儲訪問地址等信息,如下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()等庫函數即可確定文件系統是否成功建立,同時文件系統也可供后續FTP設計中的文件上傳和下載作存儲器使用。

          FTP文件傳輸設計

          本文主要是通過上傳和下載文件到MCB_DDR2上的文件系統中,通過調用文件系統中的mfs_file_open(),mfs_file_read(),mfs_file_write()以及mfs_file_close()等庫函數進行文件系統的訪問。

          以下是對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編程來實現通信,設置MCB_DDR2作為文件存儲系統的存儲器進行文件的存儲和調用。

          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://寫文件
          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庫中的庫函數編程來實現文件傳輸。

        tcp/ip相關文章:tcp/ip是什么




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 广平县| 广元市| 合山市| 堆龙德庆县| 新源县| 乐都县| 浙江省| 大兴区| 井陉县| 仁布县| 岳阳县| 凤阳县| 阿城市| 通渭县| 永康市| 西青区| 郓城县| 门源| 平舆县| 柳林县| 宁阳县| 香河县| 湘乡市| 江城| 军事| 图片| 孙吴县| 望奎县| 南昌县| 滨海县| 辽源市| 怀远县| 繁昌县| 新巴尔虎左旗| 屏山县| 遂平县| 廊坊市| 共和县| 合江县| 义乌市| 九寨沟县|