📄 power_tests.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 + -