progctrl.rmh
来自「和picoblaze完全兼容的mcu ip core」· RMH 代码 · 共 1,519 行 · 第 1/5 页
RMH
1,519 行
/* Symbol Table */// ASCII_byte_to_hex = LABEL: 372// ASCII_letter = LABEL: 395// ASCII_to_hex = LABEL: 385// ISR = LABEL: 1013// ISR_preserve_s0 = CONSTANT: 0// MCS_address = LABEL: 103// SF_STS = CONSTANT: 128// SF_addr_hi_port = CONSTANT: 128// SF_addr_lo_port = CONSTANT: 32// SF_addr_mi_port = CONSTANT: 64// SF_buffer_write = LABEL: 119// SF_byte_read = LABEL: 224// SF_byte_write = LABEL: 234// SF_ce = CONSTANT: 2// SF_control_port = CONSTANT: 8// SF_data_in_port = CONSTANT: 2// SF_data_out_port = CONSTANT: 16// SF_erase_block = LABEL: 65// SF_information = LABEL: 194// SF_init = LABEL: 39// SF_read = CONSTANT: 1// SF_single_byte_write = LABEL: 157// SF_status = LABEL: 213// SF_we = CONSTANT: 4// UART_data = REGISTER: 15// UART_read_port = CONSTANT: 1// UART_write = LABEL: 309// UART_write_port = CONSTANT: 4// abort_erase = LABEL: 63// block_erase_command = LABEL: 44// blocks_erase = LABEL: 45// blocks_erase_loop = LABEL: 56// character_0 = CONSTANT: 48// character_1 = CONSTANT: 49// character_2 = CONSTANT: 50// character_3 = CONSTANT: 51// character_4 = CONSTANT: 52// character_5 = CONSTANT: 53// character_6 = CONSTANT: 54// character_7 = CONSTANT: 55// character_8 = CONSTANT: 56// character_9 = CONSTANT: 57// character_A = CONSTANT: 65// character_B = CONSTANT: 66// character_BS = CONSTANT: 8// character_C = CONSTANT: 67// character_CR = CONSTANT: 13// character_D = CONSTANT: 68// character_E = CONSTANT: 69// character_F = CONSTANT: 70// character_G = CONSTANT: 71// character_H = CONSTANT: 72// character_I = CONSTANT: 73// character_J = CONSTANT: 74// character_K = CONSTANT: 75// character_L = CONSTANT: 76// character_LF = CONSTANT: 10// character_M = CONSTANT: 77// character_N = CONSTANT: 78// character_O = CONSTANT: 79// character_P = CONSTANT: 80// character_Q = CONSTANT: 81// character_R = CONSTANT: 82// character_S = CONSTANT: 83// character_T = CONSTANT: 84// character_U = CONSTANT: 85// character_V = CONSTANT: 86// character_W = CONSTANT: 87// character_X = CONSTANT: 88// character_XOFF = CONSTANT: 19// character_XON = CONSTANT: 17// character_Y = CONSTANT: 89// character_Z = CONSTANT: 90// character_a = CONSTANT: 97// character_b = CONSTANT: 98// character_c = CONSTANT: 99// character_close = CONSTANT: 41// character_colon = CONSTANT: 58// character_comma = CONSTANT: 44// character_d = CONSTANT: 100// character_divide = CONSTANT: 47// character_dollar = CONSTANT: 36// character_e = CONSTANT: 101// character_equals = CONSTANT: 61// character_exclaim = CONSTANT: 33// character_f = CONSTANT: 102// character_fullstop = CONSTANT: 46// character_g = CONSTANT: 103// character_greater_than = CONSTANT: 62// character_h = CONSTANT: 104// character_i = CONSTANT: 105// character_j = CONSTANT: 106// character_k = CONSTANT: 107// character_l = CONSTANT: 108// character_less_than = CONSTANT: 60// character_m = CONSTANT: 109// character_minus = CONSTANT: 45// character_n = CONSTANT: 110// character_o = CONSTANT: 111// character_open = CONSTANT: 40// character_p = CONSTANT: 112// character_plus = CONSTANT: 43// character_q = CONSTANT: 113// character_question = CONSTANT: 63// character_r = CONSTANT: 114// character_s = CONSTANT: 115// character_semi_colon = CONSTANT: 59// character_space = CONSTANT: 32// character_t = CONSTANT: 116// character_u = CONSTANT: 117// character_v = CONSTANT: 118// character_w = CONSTANT: 119// character_x = CONSTANT: 120// character_y = CONSTANT: 121// character_z = CONSTANT: 122// cold_start = LABEL: 0// data_start = CONSTANT: 47// decimal_to_ASCII = LABEL: 311// delay_1ms = LABEL: 272// delay_1s = LABEL: 282// delay_1us = LABEL: 263// delay_1us_constant = CONSTANT: 11// delay_20ms = LABEL: 277// delay_40us = LABEL: 267// erase_command = LABEL: 42// get_data = LABEL: 150// hex_byte_to_ASCII = LABEL: 342// hex_to_ASCII = LABEL: 354// isr_send_character = LABEL: 1020// isr_send_xon = LABEL: 1019// line_start = CONSTANT: 43// new_low_address = LABEL: 114// number_char = LABEL: 357// obtain_8bits = LABEL: 397// onechar_to_value = LABEL: 324// program_MCS = LABEL: 76// program_command = LABEL: 71// prompt = LABEL: 7// read_MCS_byte = LABEL: 91// read_MCS_line = LABEL: 87// read_XON = LABEL: 301// read_character = LABEL: 292// read_command = LABEL: 163// read_from_UART = LABEL: 287// read_upper_case = LABEL: 34// rx_data_present = CONSTANT: 8// rx_full = CONSTANT: 32// rx_half_full = CONSTANT: 16// s0 = REGISTER: 0// s1 = REGISTER: 1// s2 = REGISTER: 2// s3 = REGISTER: 3// s4 = REGISTER: 4// s5 = REGISTER: 5// s6 = REGISTER: 6// s7 = REGISTER: 7// s8 = REGISTER: 8// s9 = REGISTER: 9// sA = REGISTER: 10// sB = REGISTER: 11// sC = REGISTER: 12// sD = REGISTER: 13// sE = REGISTER: 14// sF = REGISTER: 15// send_Abort = LABEL: 753// send_CR = LABEL: 403// send_Confirm = LABEL: 724// send_Erase = LABEL: 544// send_Erase_in_progress = LABEL: 521// send_ID = LABEL: 710// send_MCS_file = LABEL: 503// send_Menu = LABEL: 563// send_OK = LABEL: 556// send_SF_byte = LABEL: 182// send_SF_line = LABEL: 178// send_SF_page = LABEL: 177// send_Waiting_MCS_file = LABEL: 482// send_address = LABEL: 766// send_byte = LABEL: 715// send_counter_timer = LABEL: 256// send_data = LABEL: 782// send_equals = LABEL: 779// send_hex_3bytes = LABEL: 365// send_hex_byte = LABEL: 359// send_space = LABEL: 406// send_to_UART = LABEL: 305// send_welcome = LABEL: 409// set_SF_read_array_mode = LABEL: 244// spare1 = CONSTANT: 64// status_port = CONSTANT: 0// test_for_ten = LABEL: 312// twochar_to_value = LABEL: 328// tx_data_present = CONSTANT: 1// tx_full = CONSTANT: 4// tx_half_full = CONSTANT: 2// upper_case = LABEL: 318// wait_1ms = LABEL: 273// wait_1s = LABEL: 283// wait_1us = LABEL: 264// wait_20ms = LABEL: 278// wait_40us = LABEL: 268// wait_MCS_line_Start = LABEL: 88// wait_Rx_character = LABEL: 288// wait_SF_loop = LABEL: 249// wait_SF_ready = LABEL: 247// wait_XON = LABEL: 297// warm_start = LABEL: 5// welcome_start = LABEL: 3// write_buffer_loop = LABEL: 128// write_command = LABEL: 140// write_spm_data = LABEL: 82/* Program Code */// #1: ;KCPSM3 Program - UART programming of StrataFLASH memory on the Spartan-3E Starter Kit.// #2: ;// #3: ;Ken Chapman - Xilinx Ltd// #4: ;// #5: ;Version v1.00 - 28th March 2006// #6: ;// #7: ;This program uses a 115200 baud UART connection with XON/XOFF flow control// #8: ;to allow a standard MCS file for the configuration of a Spartan-3E device to// #9: ;be programmed into the Intel StrataFLASH device on the board.// #10: ;// #11: ;// #12: ;// #13: ;// #14: ;**************************************************************************************// #15: ; Port definitions// #16: ;**************************************************************************************// #17: ;// #18: ;// #19: CONSTANT(status_port,0) ;UART and filter status input// #20: CONSTANT(tx_data_present,1) ; Transmitter data present - bit0// #21: CONSTANT(tx_half_full,2) ; FIFO half full - bit1// #22: CONSTANT(tx_full,4) ; full - bit2// #23: CONSTANT(rx_data_present,8) ; data present - bit3// #24: CONSTANT(rx_half_full,16) ; Receiver half full - bit4// #25: CONSTANT(rx_full,32) ; FIFO full - bit5// #26: CONSTANT(spare1,64) ; spare '0' - bit6// #27: CONSTANT(SF_STS,128) ; StrataFLASH STS - bit7// #28: ;// #29: CONSTANT(UART_read_port,1) ;UART Rx data input// #30: ;// #31: CONSTANT(UART_write_port,4) ;UART Tx data output// #32: ;// #33: ;// #34: CONSTANT(SF_data_in_port,2) ;Read data from StrataFLASH device// #35: ;// #36: CONSTANT(SF_data_out_port,16) ;Data to write into StrataFLASH device// #37: ;// #38: CONSTANT(SF_addr_hi_port,128) ;StrataFLASH address[23:16]// #39: CONSTANT(SF_addr_mi_port,64) ;StrataFLASH address[15:8]// #40: CONSTANT(SF_addr_lo_port,32) ;StrataFLASH address[7:0]// #41: ;// #42: CONSTANT(SF_control_port,8) ;StrataFLASH control// #43: CONSTANT(SF_read,1) ; active High read - bit0// #44: CONSTANT(SF_ce,2) ; active Low device enable - bit1// #45: CONSTANT(SF_we,4) ; active Low write - bit2// #46: ;// #47: ;// #48: ;// #49: ;**************************************************************************************// #50: ; Special Register usage// #51: ;**************************************************************************************// #52: ;// #53: NAMEREG(sF,UART_data) ;used to pass data to and from the UART// #54: ;// #55: ;// #56: ;**************************************************************************************// #57: ; Useful data constants// #58: ;**************************************************************************************// #59: ;// #60: ;Constant to define a software delay of 1us. This must be adjusted to reflect the// #61: ;clock applied to KCPSM3. Every instruction executes in 2 clock cycles making the// #62: ;calculation highly predictable. The '6' in the following equation even allows for// #63: ;'CALL delay_1us' instruction in the initiating code.// #64: ;// #65: ; delay_1us_constant = (clock_rate - 6)/4 Where 'clock_rate' is in MHz// #66: ;// #67: ;Example: For a 50MHz clock the constant value is (10-6)/4 = 11 (0B Hex).// #68: ;For clock rates below 10MHz the value of 1 must be used and the operation will// #69: ;become lower than intended.// #70: ;// #71: CONSTANT(delay_1us_constant,11)// #72: ;// #73: ;// #74: ;// #75: ;ASCII table// #76: ;// #77: CONSTANT(character_a,97)// #78: CONSTANT(character_b,98)// #79: CONSTANT(character_c,99)// #80: CONSTANT(character_d,100)// #81: CONSTANT(character_e,101)// #82: CONSTANT(character_f,102)// #83: CONSTANT(character_g,103)// #84: CONSTANT(character_h,104)// #85: CONSTANT(character_i,105)// #86: CONSTANT(character_j,106)// #87: CONSTANT(character_k,107)// #88: CONSTANT(character_l,108)// #89: CONSTANT(character_m,109)// #90: CONSTANT(character_n,110)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?