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

📄 power_tests.c

📁 Freescale MCF5445evb 参考测试代码
💻 C
字号:
/*! * \file    power_tests.c * \brief   Test Routines for the Power Measurement Application * \version $Revision: 1.1 $ * \author  Michael Norman */#include "common.h"#include "power.h"#include "fec.h"#include "dspi.h"/********************************************************************//* Default FEC Config Info */FEC_CONFIG fec_cfg ={    /* FEC channel      */ 0,    /* Transceiver mode */ FEC_MODE_RMII,    /* Ethernet Speed   */ MII_100BASE_TX,    /* Ethernet Duplex  */ MII_FDX,    /* Promiscuous Mode */ FALSE,    /* Ethernet Address */ {0x00,0xCF,0x54,0x45,0xCF,0x00},    /* PHY address      */ 0,    /* Init PHY?        */ YES,    /* Number of RxBDs  */ 1,    /* Number of TxBDs  */ 2};int test_data[] = {    0x0000FFFF,0x0000FFFF,0x00FFFF00,0xFF0000FF,    0x00112233,0x44556677,0x8899AABB,0xCCDDEEFF,    0x00001111,0x22223333,0x44445555,0x66667777,    0x88889999,0xAAAABBBB,0xCCCCDDDD,0xEEEEFFFF,    0x00000000,0x11111111,0x22222222,0x33333333,    0x44444444,0x55555555,0x66666666,0x77777777,    0x11111111,0x22222222,0x44444444,0x88888888,    0xAAAAAAAA,0x55555555,0x99999999,0x66666666,    0xEEEEEEEE,0x77777777,0xFFFFFFFF,0x00000000,    0x33333333,0xCCCCCCCC,0xDEADBEEF,0xFEEDFACE,	0x11111111,0x22222222,0x44444444,0x88888888,	0x55555555,0x66666666,0x77777777,0x88888888,	0x99999999,0x00000000,0xaaaaaaaa,0xbbbbbbbb,	0xcccccccc,0xdddddddd,0xeeeeeeee,0xffffffff,	0x11111111,0x22222222,0x33333333,0x44444444,	0x55555555,0x66666666,0x77777777,0x88888888,	0x12345678,0x90abcdef,0x78162435,0xbd895b14,	0xcccccccc,0xdddddddd,0xeeeeeeee,0xffffffff,	0x11111111,0x22222222,0x33333333,0x44444444,	0x55555555,0x66666666,0x77777777,0x88888888,	0x99999999,0x00000000,0xaaaaaaaa,0xbbbbbbbb,	0xcccccccc,0xdddddddd,0xeeeeeeee,0xffffffff,	0x99a152a3,0x54a556a7,0x58a95aab,0x5cad5eaf,    0x0000FFFF,0x0000FFFF,0x00FFFF00,0xFF0000FF,    0x00112233,0x44556677,0x8899AABB,0xCCDDEEFF,    0x00001111,0x22223333,0x44445555,0x66667777,    0x88889999,0xAAAABBBB,0xCCCCDDDD,0xEEEEFFFF,    0x00000000,0x11111111,0x22222222,0x33333333,    0x44444444,0x55555555,0x66666666,0x77777777,    0x11111111,0x22222222,0x44444444,0x88888888,    0xAAAAAAAA,0x55555555,0x99999999,0x66666666,    0xEEEEEEEE,0x77777777,0xFFFFFFFF,0x00000000,    0x33333333,0xCCCCCCCC,0xDEADBEEF,0xFEEDFACE };#define NBUF_NUMBER     3   #define NBUF_SIZE       sizeof(test_data)ETH_ADDR src = {0x00,0xCF,0x54,0x45,0xCF,0x00};ETH_ADDR dst = {0x00,0xCF,0x54,0x45,0xCF,0x00};voideth_init(void);voideth_tx (void);voidfec_tx_callback(NBUF *pNbuf);/********************************************************************/voidpower_app_ddr (void){    /* burst from SRAM to SDRAM */    mcf5xxx_move_line((ADDRESS)&test_data[0], SDRAM_ADDRESS + 0);    mcf5xxx_move_line((ADDRESS)&test_data[0], SDRAM_ADDRESS + 0);    mcf5xxx_move_line((ADDRESS)&test_data[0], SDRAM_ADDRESS + 0);    mcf5xxx_move_line((ADDRESS)&test_data[0], SDRAM_ADDRESS + 0);    mcf5xxx_move_line((ADDRESS)&test_data[0], SDRAM_ADDRESS + 0);    mcf5xxx_move_line((ADDRESS)&test_data[0], SDRAM_ADDRESS + 0);    mcf5xxx_move_line((ADDRESS)&test_data[0], SDRAM_ADDRESS + 0);    mcf5xxx_move_line((ADDRESS)&test_data[0], SDRAM_ADDRESS + 0);}/********************************************************************/voidpower_app_max (void){    int i, hashi;    int spd, dpx;    char hash[5];    hash[0]=8;  /* Backspace */    hash[1]=124;/* "|" */    hash[2]=47; /* "/" */    hash[3]=45; /* "-" */    hash[4]=92; /* "\" */    /* Enable interrupts in the core */    mcf5xxx_irq_enable();    eth_init();    /* Start continuous ethernet transmissions */    nif_set_txcallback(&nif[0], fec_tx_callback);    eth_tx();    eth_tx();    i = 0; hashi = 0;    CPLD_LEDS = 0;    while (1)    {        int j;                /* Increment the CPLD LED display */        ++i;                        /* Twirlies on the UART0 output */        out_char(hash[0]);        out_char(hash[hashi]);        hashi = (hashi + 1) % 5;        for (j = 0; j < 100; j++)        {            power_app_ddr();        }    }}/********************************************************************/voideth_init(void){    int i;    NBUF *pNbuf;        /* Initialize the network buffers */    if (nbuf_init(NBUF_NUMBER, NBUF_SIZE))    {        printf("Fatal: Unable to initialize the network buffers\n");        ASSERT(FALSE);    }    for (i=0; i < NBUF_NUMBER; ++i)    {        pNbuf = nbuf_alloc();        if (pNbuf == NULL)        {            printf("Error: nbuf_alloc() failed\n");            ASSERT(FALSE);        }        memcpy(pNbuf->data,test_data,NBUF_SIZE);        nbuf_free(pNbuf);    }    printf("Starting FEC0...");    if (fec_eth_start(&fec_cfg, FSYS_MHZ))        printf("Failed\n");    else    {        printf("Done\n");        fec_rmii_speed(fec_cfg.ch, fec_cfg.speed);//        ASSERT(eth_phy_get_speed(fec_cfg.phyaddr, &spd) == 0);//        printf("Speed negotiated to %dMbps\n",//               (spd == MII_10BASE_T) ? 10 : 100);////        ASSERT(eth_phy_get_duplex(fec_cfg.phyaddr, &dpx) == 0);//        printf("Duplex negotiated to \"%s\"\n",//               (dpx == MII_FDX) ? "FULL" : "HALF");    }        /* Setup the network interface */    nif_init(&nif[0]);    nif_set_hwa(&nif[0], &fec_cfg.mac[0]);    nif_set_ch(&nif[0], 0);	}/********************************************************************/voideth_tx (void){    NBUF *pNbuf;    /* Alloc a free network buffer */    pNbuf = nbuf_alloc();    pNbuf->length = sizeof(test_data);    ASSERT(pNbuf != NULL);    ASSERT(fec_send(0,dst,src,ETH_FRM_TEST,pNbuf) == 0);}/********************************************************************/voidfec_tx_callback(NBUF *pNbuf){    /* Resend the packet, continue the loop */    ASSERT(fec_send(0,dst,src,ETH_FRM_TEST,pNbuf) == 0);}/********************************************************************/

⌨️ 快捷键说明

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