<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

          Spartan 6上嵌入式網(wǎng)絡(luò)服務(wù)系統(tǒng)設(shè)計實現(xiàn)

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

            以下先介紹Xilkernel系統(tǒng)內(nèi)核主要參數(shù)的設(shè)置以及多線程的調(diào)用方式:

          本文引用地址:http://www.ex-cimer.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))//系統(tǒng)訪問入口函數(shù)run_kerl()

            Xilkernel系統(tǒng)使用多線程通信的方法,通過調(diào)用相應(yīng)的線程來實現(xiàn)對應(yīng)的功能,如下述建立初始線程,訪問network_thread()函數(shù):

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

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

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

            文件系統(tǒng)建立

            下面介紹下本文文件系統(tǒng)的建立步驟:

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

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

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

            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下執(zhí)行

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

            FTP文件傳輸設(shè)計

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

            以下是對130庫文件的設(shè)置:

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

            由以上的設(shè)置可以看出本文是基于Xilkernel內(nèi)核系統(tǒng)的Socket API編程來實現(xiàn)通信,設(shè)置MCB_DDR2作為文件存儲系統(tǒng)的存儲器進行文件的存儲和調(diào)用。

            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編程,調(diào)用130庫中的庫函數(shù)編程來實現(xiàn)文件傳輸。

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




          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();