Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: DDRO_Farrari mbed
Fork of DDRO_Farrari by
main.cpp@0:84a8bcfbdec9, 2013-10-07 (annotated)
- Committer:
- liangzhen
- Date:
- Mon Oct 07 22:58:19 2013 +0000
- Revision:
- 0:84a8bcfbdec9
- Child:
- 1:6a820a0ca03b
power sensor tested;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
liangzhen | 0:84a8bcfbdec9 | 1 | |
liangzhen | 0:84a8bcfbdec9 | 2 | #include "mbed.h" |
liangzhen | 0:84a8bcfbdec9 | 3 | #include "dac.h" |
liangzhen | 0:84a8bcfbdec9 | 4 | #include "board_test.h" |
liangzhen | 0:84a8bcfbdec9 | 5 | #include "scan.h" |
liangzhen | 0:84a8bcfbdec9 | 6 | #include "power.h" |
liangzhen | 0:84a8bcfbdec9 | 7 | #include "pinout.h" |
liangzhen | 0:84a8bcfbdec9 | 8 | #include "pll.h" |
liangzhen | 0:84a8bcfbdec9 | 9 | #include "lcd.h" |
liangzhen | 0:84a8bcfbdec9 | 10 | #include "jtag.h" |
liangzhen | 0:84a8bcfbdec9 | 11 | #include "mmap.h" |
liangzhen | 0:84a8bcfbdec9 | 12 | #include "clock.h" |
liangzhen | 0:84a8bcfbdec9 | 13 | #include "EasyBMP.h" |
liangzhen | 0:84a8bcfbdec9 | 14 | |
liangzhen | 0:84a8bcfbdec9 | 15 | extern "C" void mbed_reset(); |
liangzhen | 0:84a8bcfbdec9 | 16 | extern "C" void HardFault_Handler() { mbed_reset(); } |
liangzhen | 0:84a8bcfbdec9 | 17 | class Watchdog { |
liangzhen | 0:84a8bcfbdec9 | 18 | public: |
liangzhen | 0:84a8bcfbdec9 | 19 | // Load timeout value in watchdog timer and enable |
liangzhen | 0:84a8bcfbdec9 | 20 | void kick(float s) { |
liangzhen | 0:84a8bcfbdec9 | 21 | LPC_WDT->WDCLKSEL = 0x1; // Set CLK src to PCLK |
liangzhen | 0:84a8bcfbdec9 | 22 | uint32_t clk = SystemCoreClock / 16; // WD has a fixed /4 prescaler, PCLK default is /4 |
liangzhen | 0:84a8bcfbdec9 | 23 | LPC_WDT->WDTC = s * (float)clk; |
liangzhen | 0:84a8bcfbdec9 | 24 | LPC_WDT->WDMOD = 0x3; // Enabled and Reset |
liangzhen | 0:84a8bcfbdec9 | 25 | kick(); |
liangzhen | 0:84a8bcfbdec9 | 26 | } |
liangzhen | 0:84a8bcfbdec9 | 27 | // "kick" or "feed" the dog - reset the watchdog timer |
liangzhen | 0:84a8bcfbdec9 | 28 | // by writing this required bit pattern |
liangzhen | 0:84a8bcfbdec9 | 29 | void kick() { |
liangzhen | 0:84a8bcfbdec9 | 30 | LPC_WDT->WDFEED = 0xAA; |
liangzhen | 0:84a8bcfbdec9 | 31 | LPC_WDT->WDFEED = 0x55; |
liangzhen | 0:84a8bcfbdec9 | 32 | } |
liangzhen | 0:84a8bcfbdec9 | 33 | }; |
liangzhen | 0:84a8bcfbdec9 | 34 | Watchdog wdt; |
liangzhen | 0:84a8bcfbdec9 | 35 | void DDRO_Sensor(void); |
liangzhen | 0:84a8bcfbdec9 | 36 | int FFT_Freq(float); |
liangzhen | 0:84a8bcfbdec9 | 37 | |
liangzhen | 0:84a8bcfbdec9 | 38 | int main() { |
liangzhen | 0:84a8bcfbdec9 | 39 | float new_power = 0.9; |
liangzhen | 0:84a8bcfbdec9 | 40 | |
liangzhen | 0:84a8bcfbdec9 | 41 | //wdt.kick(20.0); |
liangzhen | 0:84a8bcfbdec9 | 42 | pc.printf("Begin FFT\r\n"); |
liangzhen | 0:84a8bcfbdec9 | 43 | char buffer[21]; |
liangzhen | 0:84a8bcfbdec9 | 44 | |
liangzhen | 0:84a8bcfbdec9 | 45 | power_down(); |
liangzhen | 0:84a8bcfbdec9 | 46 | power_up(new_power); // Power Up Chip |
liangzhen | 0:84a8bcfbdec9 | 47 | pc.printf("Powered up!\r\n"); |
liangzhen | 0:84a8bcfbdec9 | 48 | |
liangzhen | 0:84a8bcfbdec9 | 49 | PORESETn = 0; |
liangzhen | 0:84a8bcfbdec9 | 50 | CORERESETn = 0; |
liangzhen | 0:84a8bcfbdec9 | 51 | PORESETn = 1; |
liangzhen | 0:84a8bcfbdec9 | 52 | CORERESETn = 1; |
liangzhen | 0:84a8bcfbdec9 | 53 | |
liangzhen | 0:84a8bcfbdec9 | 54 | JTAG jtag; |
liangzhen | 0:84a8bcfbdec9 | 55 | int idcode = jtag.readID(); |
liangzhen | 0:84a8bcfbdec9 | 56 | if(idcode != 0x4ba00477) { |
liangzhen | 0:84a8bcfbdec9 | 57 | pc.printf("ERROR: IDCode %X\r\n", idcode); |
liangzhen | 0:84a8bcfbdec9 | 58 | wait(20); |
liangzhen | 0:84a8bcfbdec9 | 59 | power_down(); |
liangzhen | 0:84a8bcfbdec9 | 60 | return -1; |
liangzhen | 0:84a8bcfbdec9 | 61 | } |
liangzhen | 0:84a8bcfbdec9 | 62 | pc.printf("IDCode %X\r\n", idcode); |
liangzhen | 0:84a8bcfbdec9 | 63 | |
liangzhen | 0:84a8bcfbdec9 | 64 | jtag.reset(); |
liangzhen | 0:84a8bcfbdec9 | 65 | jtag.leaveState(); |
liangzhen | 0:84a8bcfbdec9 | 66 | jtag.PowerupDAP(); |
liangzhen | 0:84a8bcfbdec9 | 67 | int freq = FFT_Freq(new_power); |
liangzhen | 0:84a8bcfbdec9 | 68 | pc.printf("fft working frequency: %d MHz\r\n", freq); |
liangzhen | 0:84a8bcfbdec9 | 69 | |
liangzhen | 0:84a8bcfbdec9 | 70 | DDRO_Sensor(); |
liangzhen | 0:84a8bcfbdec9 | 71 | jtag.writeMemory(ddro_pad_out, 0xffffffff); |
liangzhen | 0:84a8bcfbdec9 | 72 | printf("Reading ddro pad out %x\n", jtag.readMemory(ddro_pad_out)); |
liangzhen | 0:84a8bcfbdec9 | 73 | jtag.writeMemory(ddro_div_by, 0xffffffff); |
liangzhen | 0:84a8bcfbdec9 | 74 | printf("Reading ddro div by %x\n", jtag.readMemory(ddro_div_by)); |
liangzhen | 0:84a8bcfbdec9 | 75 | |
liangzhen | 0:84a8bcfbdec9 | 76 | //wdt.kick(); |
liangzhen | 0:84a8bcfbdec9 | 77 | gain_ctrl=0; |
liangzhen | 0:84a8bcfbdec9 | 78 | pc.printf("GAIN_CTRL = 0\r\n"); |
liangzhen | 0:84a8bcfbdec9 | 79 | pc.printf("SEN: %f\r\n",meas_sen.read()); |
liangzhen | 0:84a8bcfbdec9 | 80 | pc.printf("MEM1: %f\r\n",meas_mem1.read()); |
liangzhen | 0:84a8bcfbdec9 | 81 | pc.printf("MEM2: %f\r\n",meas_mem2.read()); |
liangzhen | 0:84a8bcfbdec9 | 82 | pc.printf("CORE: %f\r\n",meas_core.read()); |
liangzhen | 0:84a8bcfbdec9 | 83 | pc.getc(); |
liangzhen | 0:84a8bcfbdec9 | 84 | wait(1); |
liangzhen | 0:84a8bcfbdec9 | 85 | gain_ctrl=1; |
liangzhen | 0:84a8bcfbdec9 | 86 | pc.printf("GAIN_CTRL = 1\r\n"); |
liangzhen | 0:84a8bcfbdec9 | 87 | pc.printf("SEN: %f\r\n",meas_sen.read()); |
liangzhen | 0:84a8bcfbdec9 | 88 | pc.printf("MEM1: %f\r\n",meas_mem1.read()); |
liangzhen | 0:84a8bcfbdec9 | 89 | pc.printf("MEM2: %f\r\n",meas_mem2.read()); |
liangzhen | 0:84a8bcfbdec9 | 90 | pc.printf("CORE: %f\r\n",meas_core.read()); |
liangzhen | 0:84a8bcfbdec9 | 91 | pc.getc(); |
liangzhen | 0:84a8bcfbdec9 | 92 | wait(1); |
liangzhen | 0:84a8bcfbdec9 | 93 | gain_ctrl=0; |
liangzhen | 0:84a8bcfbdec9 | 94 | pc.printf("GAIN_CTRL = 0\r\n"); |
liangzhen | 0:84a8bcfbdec9 | 95 | pc.printf("SEN: %f\r\n",meas_sen.read()); |
liangzhen | 0:84a8bcfbdec9 | 96 | pc.printf("MEM1: %f\r\n",meas_mem1.read()); |
liangzhen | 0:84a8bcfbdec9 | 97 | pc.printf("MEM2: %f\r\n",meas_mem2.read()); |
liangzhen | 0:84a8bcfbdec9 | 98 | pc.printf("CORE: %f\r\n",meas_core.read()); |
liangzhen | 0:84a8bcfbdec9 | 99 | pc.getc(); |
liangzhen | 0:84a8bcfbdec9 | 100 | wait(1); |
liangzhen | 0:84a8bcfbdec9 | 101 | gain_ctrl=1; |
liangzhen | 0:84a8bcfbdec9 | 102 | pc.printf("GAIN_CTRL = 1\r\n"); |
liangzhen | 0:84a8bcfbdec9 | 103 | pc.printf("SEN: %f\r\n",meas_sen.read()); |
liangzhen | 0:84a8bcfbdec9 | 104 | pc.printf("MEM1: %f\r\n",meas_mem1.read()); |
liangzhen | 0:84a8bcfbdec9 | 105 | pc.printf("MEM2: %f\r\n",meas_mem2.read()); |
liangzhen | 0:84a8bcfbdec9 | 106 | pc.printf("CORE: %f\r\n",meas_core.read()); |
liangzhen | 0:84a8bcfbdec9 | 107 | pc.getc(); |
liangzhen | 0:84a8bcfbdec9 | 108 | char paus; |
liangzhen | 0:84a8bcfbdec9 | 109 | pc.printf("Powering Down\r\n"); |
liangzhen | 0:84a8bcfbdec9 | 110 | power_down(); |
liangzhen | 0:84a8bcfbdec9 | 111 | pc.printf("Done\r\n"); |
liangzhen | 0:84a8bcfbdec9 | 112 | } |
liangzhen | 0:84a8bcfbdec9 | 113 | |
liangzhen | 0:84a8bcfbdec9 | 114 | int FFT_Freq(float vdd) { |
liangzhen | 0:84a8bcfbdec9 | 115 | |
liangzhen | 0:84a8bcfbdec9 | 116 | JTAG jtag; |
liangzhen | 0:84a8bcfbdec9 | 117 | char buffer[21]; |
liangzhen | 0:84a8bcfbdec9 | 118 | int counter_set=200; |
liangzhen | 0:84a8bcfbdec9 | 119 | int flag=0; |
liangzhen | 0:84a8bcfbdec9 | 120 | while(flag==0){ |
liangzhen | 0:84a8bcfbdec9 | 121 | //load program |
liangzhen | 0:84a8bcfbdec9 | 122 | |
liangzhen | 0:84a8bcfbdec9 | 123 | if(jtag.loadProgram()) { |
liangzhen | 0:84a8bcfbdec9 | 124 | dual_printf("Load Failed"); |
liangzhen | 0:84a8bcfbdec9 | 125 | exit(1); |
liangzhen | 0:84a8bcfbdec9 | 126 | } |
liangzhen | 0:84a8bcfbdec9 | 127 | jtag.writeMemory(PLL_RESET, 0); |
liangzhen | 0:84a8bcfbdec9 | 128 | jtag_pll(jtag, 1, 1, counter_set, 1, 10, 32 ); |
liangzhen | 0:84a8bcfbdec9 | 129 | jtag.writeMemory(PLL_RESET, 1); |
liangzhen | 0:84a8bcfbdec9 | 130 | jtag.writeMemory(PLL_RESET, 0); |
liangzhen | 0:84a8bcfbdec9 | 131 | unsigned long long freq = calc_pll_freqs(1, 1, counter_set, 1, 10, 32); |
liangzhen | 0:84a8bcfbdec9 | 132 | freq = freq / 1000000; // in MHz |
liangzhen | 0:84a8bcfbdec9 | 133 | int fMHz = freq; |
liangzhen | 0:84a8bcfbdec9 | 134 | // dual_printf(buffer); |
liangzhen | 0:84a8bcfbdec9 | 135 | power_core(vdd); |
liangzhen | 0:84a8bcfbdec9 | 136 | |
liangzhen | 0:84a8bcfbdec9 | 137 | //dual_printf("Resetting"); |
liangzhen | 0:84a8bcfbdec9 | 138 | CORERESETn = 0; |
liangzhen | 0:84a8bcfbdec9 | 139 | CORERESETn = 1; |
liangzhen | 0:84a8bcfbdec9 | 140 | wait(0.2); |
liangzhen | 0:84a8bcfbdec9 | 141 | jtag.reset(); |
liangzhen | 0:84a8bcfbdec9 | 142 | jtag.leaveState(); |
liangzhen | 0:84a8bcfbdec9 | 143 | jtag.PowerupDAP(); |
liangzhen | 0:84a8bcfbdec9 | 144 | // dual_printf("Reset finished"); |
liangzhen | 0:84a8bcfbdec9 | 145 | |
liangzhen | 0:84a8bcfbdec9 | 146 | |
liangzhen | 0:84a8bcfbdec9 | 147 | unsigned int buffer_fft[64]; |
liangzhen | 0:84a8bcfbdec9 | 148 | for (int number1=0; number1<=63; number1++) { |
liangzhen | 0:84a8bcfbdec9 | 149 | buffer_fft[number1] = jtag.readMemory(0x24000100 + number1*4); |
liangzhen | 0:84a8bcfbdec9 | 150 | //printf("new[%d]: %x\n", number1, buffer_fft[number1]); |
liangzhen | 0:84a8bcfbdec9 | 151 | } |
liangzhen | 0:84a8bcfbdec9 | 152 | |
liangzhen | 0:84a8bcfbdec9 | 153 | if ( buffer_fft[0] == 0x0000fffc && buffer_fft[1]==0x0000fffd && buffer_fft[2]==0xffc0000a && buffer_fft[3]==0x0000fffe && |
liangzhen | 0:84a8bcfbdec9 | 154 | buffer_fft[4]==0x0000fffd && buffer_fft[5]==0x0000ffff && buffer_fft[6]==0x0000fffd && buffer_fft[7]==0x00000000 && |
liangzhen | 0:84a8bcfbdec9 | 155 | buffer_fft[8]==0x0000ffff && buffer_fft[9]==0x0000ffff && buffer_fft[10]==0xfffeffff && buffer_fft[11]==0xffff0000 && |
liangzhen | 0:84a8bcfbdec9 | 156 | buffer_fft[12]==0x0000ffff && buffer_fft[13]==0xffff0000 && buffer_fft[14]==0xfffffffe && buffer_fft[15]==0xffff0000 && |
liangzhen | 0:84a8bcfbdec9 | 157 | buffer_fft[16]==0x00010000 && buffer_fft[17]==0x0001ffff && buffer_fft[18]==0x0000ffff && buffer_fft[19]==0x0001ffff && |
liangzhen | 0:84a8bcfbdec9 | 158 | buffer_fft[20]==0x0001fffe && buffer_fft[21]==0x0000fffe && buffer_fft[22]==0x0001fffe && buffer_fft[23]==0x0000ffff && |
liangzhen | 0:84a8bcfbdec9 | 159 | buffer_fft[24]==0x0000ffff && buffer_fft[25]==0x0001fffe && buffer_fft[26]==0x0000ffff && buffer_fft[27]==0x00010000 && |
liangzhen | 0:84a8bcfbdec9 | 160 | buffer_fft[28]==0x0001ffff && buffer_fft[29]==0x00010000 && buffer_fft[30]==0x0000ffff && buffer_fft[31]==0x00010000 && |
liangzhen | 0:84a8bcfbdec9 | 161 | buffer_fft[32]==0x0000ffff && buffer_fft[33]==0x0000ffff && buffer_fft[34]==0x0000ffff && buffer_fft[35]==0x0000ffff && |
liangzhen | 0:84a8bcfbdec9 | 162 | buffer_fft[36]==0x0000fffe && buffer_fft[37]==0x0000ffff && buffer_fft[38]==0x0000fffe && buffer_fft[39]==0x00000000 && |
liangzhen | 0:84a8bcfbdec9 | 163 | buffer_fft[40]==0xffffffff && buffer_fft[41]==0x0000ffff && buffer_fft[42]==0xffffffff && buffer_fft[43]==0x00000000 && |
liangzhen | 0:84a8bcfbdec9 | 164 | buffer_fft[44]==0x0000ffff && buffer_fft[45]==0x00000000 && buffer_fft[46]==0xffffffff && buffer_fft[47]==0x00000000 && |
liangzhen | 0:84a8bcfbdec9 | 165 | buffer_fft[48]==0x00000000 && buffer_fft[49]==0x00000000 && buffer_fft[50]==0x00000000 && buffer_fft[51]==0x00000000 && |
liangzhen | 0:84a8bcfbdec9 | 166 | buffer_fft[52]==0x0000ffff && buffer_fft[53]==0x0000ffff && buffer_fft[54]==0x0000ffff && buffer_fft[55]==0x00000000 && |
liangzhen | 0:84a8bcfbdec9 | 167 | buffer_fft[56]==0xfffeffff && buffer_fft[57]==0xffffffff && buffer_fft[58]==0xffff0000 && buffer_fft[59]==0x00000000 && |
liangzhen | 0:84a8bcfbdec9 | 168 | buffer_fft[60]==0x0000ffff && buffer_fft[61]==0x00000000 && buffer_fft[62]==0x003d000c && buffer_fft[63]==0x00000000 ) { |
liangzhen | 0:84a8bcfbdec9 | 169 | //printf("***********************maximum freq *********************** %d", fMHz); |
liangzhen | 0:84a8bcfbdec9 | 170 | flag = 1; |
liangzhen | 0:84a8bcfbdec9 | 171 | //return fMHz; |
liangzhen | 0:84a8bcfbdec9 | 172 | } |
liangzhen | 0:84a8bcfbdec9 | 173 | else counter_set = counter_set-1; |
liangzhen | 0:84a8bcfbdec9 | 174 | } |
liangzhen | 0:84a8bcfbdec9 | 175 | unsigned long long freq = calc_pll_freqs(1, 1, counter_set, 1, 10, 32); |
liangzhen | 0:84a8bcfbdec9 | 176 | freq = freq / 1000000; // in MHz |
liangzhen | 0:84a8bcfbdec9 | 177 | int fMHz = freq; |
liangzhen | 0:84a8bcfbdec9 | 178 | return fMHz; |
liangzhen | 0:84a8bcfbdec9 | 179 | } |
liangzhen | 0:84a8bcfbdec9 | 180 | |
liangzhen | 0:84a8bcfbdec9 | 181 | void DDRO_Sensor(void){ |
liangzhen | 0:84a8bcfbdec9 | 182 | JTAG jtag; |
liangzhen | 0:84a8bcfbdec9 | 183 | /**********************enable****************************************/ |
liangzhen | 0:84a8bcfbdec9 | 184 | jtag.writeMemory(ddro_syn_en, 0xffffffff); |
liangzhen | 0:84a8bcfbdec9 | 185 | //printf("Reading ddro syn en %x\n", jtag.readMemory(ddro_syn_en)); |
liangzhen | 0:84a8bcfbdec9 | 186 | jtag.writeMemory(ddro_inv_en, 0xffffffff); |
liangzhen | 0:84a8bcfbdec9 | 187 | // printf("Reading ddro inv en %x\n", jtag.readMemory(ddro_inv_en)); |
liangzhen | 0:84a8bcfbdec9 | 188 | |
liangzhen | 0:84a8bcfbdec9 | 189 | /**********************set ref_clk and samp_clk**********************/ |
liangzhen | 0:84a8bcfbdec9 | 190 | jtag.writeMemory(ddro_samp_src, 0x00000000); |
liangzhen | 0:84a8bcfbdec9 | 191 | //printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 192 | jtag.writeMemory(ddro_ref_src, 0x00000003); |
liangzhen | 0:84a8bcfbdec9 | 193 | //printf("Reading samp src %x\n", jtag.readMemory(ddro_samp_src)); |
liangzhen | 0:84a8bcfbdec9 | 194 | |
liangzhen | 0:84a8bcfbdec9 | 195 | /**********************write threshold*******************************/ |
liangzhen | 0:84a8bcfbdec9 | 196 | // printf("Writing threshold\n"); |
liangzhen | 0:84a8bcfbdec9 | 197 | jtag.writeMemory(ddro_threshold, 10); |
liangzhen | 0:84a8bcfbdec9 | 198 | // printf("Reading threshold %d\n", jtag.readMemory(ddro_threshold)); |
liangzhen | 0:84a8bcfbdec9 | 199 | |
liangzhen | 0:84a8bcfbdec9 | 200 | jtag.writeMemory(0xe000e104, 0x000000ff); // enable interrupts |
liangzhen | 0:84a8bcfbdec9 | 201 | |
liangzhen | 0:84a8bcfbdec9 | 202 | /**********************start DDRO************************************/ |
liangzhen | 0:84a8bcfbdec9 | 203 | // printf("Ready to start DDRO \n"); |
liangzhen | 0:84a8bcfbdec9 | 204 | // printf("DDRO starting\n"); |
liangzhen | 0:84a8bcfbdec9 | 205 | jtag.writeMemory(ddro_start, 1);//*ddro_start = 1; |
liangzhen | 0:84a8bcfbdec9 | 206 | |
liangzhen | 0:84a8bcfbdec9 | 207 | /*********************output*****************************************/ |
liangzhen | 0:84a8bcfbdec9 | 208 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 209 | jtag.writeMemory(ddro_start, 0);//*ddro_start = 1; |
liangzhen | 0:84a8bcfbdec9 | 210 | |
liangzhen | 0:84a8bcfbdec9 | 211 | |
liangzhen | 0:84a8bcfbdec9 | 212 | |
liangzhen | 0:84a8bcfbdec9 | 213 | |
liangzhen | 0:84a8bcfbdec9 | 214 | jtag.writeMemory(ddro_ref_src, 0x00000004); |
liangzhen | 0:84a8bcfbdec9 | 215 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 216 | jtag.writeMemory(ddro_start, 1);//*ddro_start = 1; |
liangzhen | 0:84a8bcfbdec9 | 217 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 218 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 219 | |
liangzhen | 0:84a8bcfbdec9 | 220 | jtag.writeMemory(ddro_ref_src, 0x00000005); |
liangzhen | 0:84a8bcfbdec9 | 221 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 222 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 223 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 224 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 225 | |
liangzhen | 0:84a8bcfbdec9 | 226 | jtag.writeMemory(ddro_ref_src, 0x00000006); |
liangzhen | 0:84a8bcfbdec9 | 227 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 228 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 229 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 230 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 231 | |
liangzhen | 0:84a8bcfbdec9 | 232 | jtag.writeMemory(ddro_ref_src, 0x00000007); |
liangzhen | 0:84a8bcfbdec9 | 233 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 234 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 235 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 236 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 237 | |
liangzhen | 0:84a8bcfbdec9 | 238 | jtag.writeMemory(ddro_ref_src, 0x00000008); |
liangzhen | 0:84a8bcfbdec9 | 239 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 240 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 241 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 242 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 243 | |
liangzhen | 0:84a8bcfbdec9 | 244 | jtag.writeMemory(ddro_ref_src, 0x00000009); |
liangzhen | 0:84a8bcfbdec9 | 245 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 246 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 247 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 248 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 249 | |
liangzhen | 0:84a8bcfbdec9 | 250 | jtag.writeMemory(ddro_ref_src, 0x0000000a); |
liangzhen | 0:84a8bcfbdec9 | 251 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 252 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 253 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 254 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 255 | |
liangzhen | 0:84a8bcfbdec9 | 256 | jtag.writeMemory(ddro_ref_src, 0x0000000b); |
liangzhen | 0:84a8bcfbdec9 | 257 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 258 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 259 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 260 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 261 | |
liangzhen | 0:84a8bcfbdec9 | 262 | jtag.writeMemory(ddro_ref_src, 0x0000000c); |
liangzhen | 0:84a8bcfbdec9 | 263 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 264 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 265 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 266 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 267 | |
liangzhen | 0:84a8bcfbdec9 | 268 | jtag.writeMemory(ddro_ref_src, 0x0000000d); |
liangzhen | 0:84a8bcfbdec9 | 269 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 270 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 271 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 272 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 273 | |
liangzhen | 0:84a8bcfbdec9 | 274 | jtag.writeMemory(ddro_ref_src, 0x0000000e); |
liangzhen | 0:84a8bcfbdec9 | 275 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 276 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 277 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 278 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 279 | |
liangzhen | 0:84a8bcfbdec9 | 280 | jtag.writeMemory(ddro_ref_src, 0x0000000f); |
liangzhen | 0:84a8bcfbdec9 | 281 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 282 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 283 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 284 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 285 | |
liangzhen | 0:84a8bcfbdec9 | 286 | jtag.writeMemory(ddro_ref_src, 0x00000010); |
liangzhen | 0:84a8bcfbdec9 | 287 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 288 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 289 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 290 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 291 | |
liangzhen | 0:84a8bcfbdec9 | 292 | jtag.writeMemory(ddro_ref_src, 0x00000011); |
liangzhen | 0:84a8bcfbdec9 | 293 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 294 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 295 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 296 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 297 | |
liangzhen | 0:84a8bcfbdec9 | 298 | jtag.writeMemory(ddro_ref_src, 0x00000012); |
liangzhen | 0:84a8bcfbdec9 | 299 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 300 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 301 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 302 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 303 | |
liangzhen | 0:84a8bcfbdec9 | 304 | jtag.writeMemory(ddro_ref_src, 0x00000013); |
liangzhen | 0:84a8bcfbdec9 | 305 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 306 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 307 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 308 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 309 | |
liangzhen | 0:84a8bcfbdec9 | 310 | jtag.writeMemory(ddro_ref_src, 0x00000014); |
liangzhen | 0:84a8bcfbdec9 | 311 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 312 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 313 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 314 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 315 | |
liangzhen | 0:84a8bcfbdec9 | 316 | jtag.writeMemory(ddro_ref_src, 0x00000015); |
liangzhen | 0:84a8bcfbdec9 | 317 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 318 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 319 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 320 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 321 | |
liangzhen | 0:84a8bcfbdec9 | 322 | jtag.writeMemory(ddro_ref_src, 0x00000016); |
liangzhen | 0:84a8bcfbdec9 | 323 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 324 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 325 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 326 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 327 | |
liangzhen | 0:84a8bcfbdec9 | 328 | jtag.writeMemory(ddro_ref_src, 0x00000017); |
liangzhen | 0:84a8bcfbdec9 | 329 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 330 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 331 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 332 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 333 | |
liangzhen | 0:84a8bcfbdec9 | 334 | jtag.writeMemory(ddro_ref_src, 0x00000018); |
liangzhen | 0:84a8bcfbdec9 | 335 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 336 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 337 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 338 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 339 | |
liangzhen | 0:84a8bcfbdec9 | 340 | jtag.writeMemory(ddro_ref_src, 0x00000019); |
liangzhen | 0:84a8bcfbdec9 | 341 | printf("Reading ddro ref src %x\n", jtag.readMemory(ddro_ref_src)); |
liangzhen | 0:84a8bcfbdec9 | 342 | jtag.writeMemory(ddro_start, 1); |
liangzhen | 0:84a8bcfbdec9 | 343 | printf("Reading ddro_count %d\n", jtag.readMemory(ddro_count)); |
liangzhen | 0:84a8bcfbdec9 | 344 | jtag.writeMemory(ddro_start, 0); |
liangzhen | 0:84a8bcfbdec9 | 345 | |
liangzhen | 0:84a8bcfbdec9 | 346 | } |