关于AXI_Quad_SPI的寄存器配置
关于AXI_Quad_SPI的寄存器配置
1.核初始化配置
首先是:
40:0000_000A
1C:8000_0000
28:0000_0004
2.命令与dummy_data
60:000001E6
60:00000186
68:{24'h000000,cmd}
68:{24'h000000,add0}
68:{24'h000000,add1}
68:{24'h000000,add2}
68:{24'h000000,data1}
68:{24'h000000,data2}
68:{24'h000000,data3}
68:{24'h000000,DUMMY_DATA}
68:{24'h000000,DUMMY_DATA}
68:{24'h000000,DUMMY_DATA}
68:{24'h000000,DUMMY_DATA}
68:{24'h000000,DUMMY_DATA}
68:{24'h000000,DUMMY_DATA}
68:{24'h000000,DUMMY_DATA}
68:{24'h000000,DUMMY_DATA}
70:00000000
60:00000086
20:00000004
70:FFFFFFFF
60:00000186
AXI_Quad_SPI核在使用中碰到的问题:
对IP核进行初始化后,执行的第一个命令无效,第二个命令才能正常执行,如果开机第一个命令需要执行写使能命令,即需要把写使能命令执行两边,第二个才生效,第三个,第四个...均能正常执行。这个问题与SPI的clk 调用了startup primitive这一源语有关。
- `timescale 1ns / 1ps
- //////////////////////////////////////////////////////////////////////////////////
- // Company:
- // Engineer: chensimin
- //
- // Create Date: 2018/02/01 10:32:30
- // Design Name:
- // Module Name: top
- // Project Name:
- // Target Devices:
- // Tool Versions:
- // Description:
- //
- // Dependencies:
- //
- // Revision:
- // Revision 0.01 - File Created
- // Additional Comments:
- //
- //////////////////////////////////////////////////////////////////////////////////
- module top(
- input clk_27m_in,
- inout [:]spi_dq,
- inout spi_ss
- );
- //--------------------------------------------------------------
- wire clk_100M;
- clk_wiz_0 U2(
- .clk_out1(clk_100M),
- .clk_in1(clk_27m_in)
- );
- //--------------------------------------------------------------
- wire rst;
- //wire start_write;
- wire start_core_init;
- wire finish_core_init;
- wire start_core_write;
- wire wait_core_int;
- wire finish_core_write;
- wire start_read;
- wire [:]axi_araddr;
- wire core_init_en;
- wire core_write_en;
- wire [:]cmd;
- wire [:]add0;
- wire [:]add1;
- wire [:]add2;
- wire [:]data1;
- wire [:]data2;
- wire [:]data3;
- vio_0 U3 (
- .clk(clk_100M), // input wire clk
- .probe_out0(rst), // output wire [0 : 0] probe_out0
- .probe_out1(start_core_init), // output wire [0 : 0] probe_out1
- .probe_out2(start_read), // output wire [0 : 0] probe_out2
- .probe_out3(axi_araddr), // output wire [31 : 0] probe_out3
- .probe_out4(core_init_en), // output wire [0 : 0] probe_out4
- .probe_out5(core_write_en), // output wire [0 : 0] probe_out5
- .probe_out6(cmd), // output wire [7 : 0] probe_out6
- .probe_out7(add0), // output wire [7 : 0] probe_out7
- .probe_out8(add1), // output wire [7 : 0] probe_out8
- .probe_out9(add2), // output wire [7 : 0] probe_out9
- .probe_out10(data1), // output wire [7 : 0] probe_out10
- .probe_out11(data2), // output wire [7 : 0] probe_out11
- .probe_out12(data3), // output wire [7 : 0] probe_out12
- .probe_out13(finish_core_init), // output wire [0 : 0] probe_out13
- .probe_out14(start_core_write), // output wire [0 : 0] probe_out14
- .probe_out15(wait_core_int), // output wire [0 : 0] probe_out15
- .probe_out16(finish_core_write) // output wire [0 : 0] probe_out16
- );
- //--------------------------------------------------------------
- ila_0 U4 (
- .clk(clk_100M), // input wire clk
- .probe0(start_write_rise), // input wire [0:0] probe0
- .probe1(start_read_rise), // input wire [0:0] probe1
- .probe2(m_axi_awvalid), // input wire [0:0] probe2
- .probe3(m_axi_wvalid), // input wire [0:0] probe3
- .probe4(m_axi_arvalid), // input wire [0:0] probe4
- .probe5(m_axi_rready), // input wire [0:0] probe5
- .probe6(m_axi_bready), // input wire [0:0] probe6
- .probe7(s_axi_awready), // input wire [0:0] probe7
- .probe8(s_axi_arready), // input wire [0:0] probe8
- .probe9(s_axi_wready), // input wire [0:0] probe9
- .probe10(s_axi_rvalid), // input wire [0:0] probe10
- .probe11(s_axi_bvalid), // input wire [0:0] probe11
- .probe12(io0_i), // input wire [0:0] probe12
- .probe13(io0_o), // input wire [0:0] probe13
- .probe14(io0_t), // input wire [0:0] probe14
- .probe15(io1_i), // input wire [0:0] probe15
- .probe16(io1_o), // input wire [0:0] probe16
- .probe17(io1_t), // input wire [0:0] probe17
- .probe18(io2_i), // input wire [0:0] probe18
- .probe19(io2_o), // input wire [0:0] probe19
- .probe20(io2_t), // input wire [0:0] probe20
- .probe21(io3_i), // input wire [0:0] probe21
- .probe22(io3_o), // input wire [0:0] probe22
- .probe23(io3_t), // input wire [0:0] probe23
- .probe24(ss_i), // input wire [0:0] probe24
- .probe25(ss_o), // input wire [0:0] probe25
- .probe26(ss_t), // input wire [0:0] probe26
- .probe27(m_axi_awaddr), // input wire [6:0] probe27
- .probe28(m_axi_araddr), // input wire [6:0] probe28
- .probe29(current_state), // input wire [6:0] probe29
- .probe30(core_init_cnt), // input wire [6:0] probe30
- .probe31(m_axi_wdata), // input wire [31:0] probe31
- .probe32(m_axi_rdata), // input wire [31:0] probe32
- .probe33(s_axi_rdata), // input wire [31:0] probe33
- .probe34(core_write_cnt), // input wire [6:0] probe34
- .probe35(axi_awaddr), // input wire [6:0] probe35
- .probe36(next_state), // input wire [6:0] probe36
- .probe37(axi_wdata) // input wire [31:0] probe37
- );
- //--------------------------------------------------------------
- reg start_write;
- always @(posedge clk_100M or posedge rst)
- begin
- if(rst)
- start_write <= 'b0;
- else if (current_state == && core_init_en)
- begin
- if(core_init_cnt == )
- begin
- if(start_core_init_rise)
- start_write <= 'b1;
- else
- start_write <= 'b0;
- end
- else if(core_init_cnt == )
- begin
- if(finish_core_init_rise)
- start_write <= 'b1;
- else
- start_write <= 'b0;
- end
- else
- start_write <= 'b1;
- end
- else if(current_state == && core_write_en)
- begin
- if(core_write_cnt == )
- begin
- if(start_core_write_rise)
- start_write <= 'b1;
- else
- start_write <= 'b0;
- end
- else if(core_write_cnt == )
- begin
- if(wait_core_int_rise)
- start_write <= 'b1;
- else
- start_write <= 'b0;
- end
- else if(core_write_cnt == )
- if(finish_core_write_rise)
- start_write <= 'b1;
- else
- start_write <= 'b0;
- else
- start_write <= 'b1;
- end
- else
- start_write <= 'b0;
- end
- //--------------------------------------------------------------
- reg start_write_delay;
- wire start_write_rise;
- reg start_read_delay;
- wire start_read_rise;
- reg start_core_init_delay;
- wire start_core_init_rise;
- reg finish_core_init_delay;
- wire finish_core_init_rise;
- reg start_core_write_delay;
- wire start_core_write_rise;
- reg wait_core_int_delay;
- wire wait_core_int_rise;
- reg finish_core_write_delay;
- wire finish_core_write_rise;
- always @(posedge clk_100M or posedge rst)
- begin
- if (rst)
- begin
- start_write_delay <= 'b0;
- start_read_delay <= 'b0;
- start_core_init_delay <= 'b0;
- finish_core_init_delay <= 'b0;
- start_core_write_delay <= 'b0;
- wait_core_int_delay <= 'b0;
- finish_core_write_delay <= 'b0;
- end
- else
- begin
- start_write_delay <= start_write;
- start_read_delay <= start_read;
- start_core_init_delay <= start_core_init;
- finish_core_init_delay <= finish_core_init;
- start_core_write_delay <= start_core_write;
- wait_core_int_delay <= wait_core_int;
- finish_core_write_delay <= finish_core_write;
- end
- end
- assign start_write_rise = !start_write_delay && start_write;
- assign start_read_rise = !start_read_delay && start_read;
- assign start_core_init_rise = !start_core_init_delay && start_core_init;
- assign finish_core_init_rise = !finish_core_init_delay && finish_core_init;
- assign start_core_write_rise = !start_core_write_delay && start_core_write;
- assign wait_core_int_rise = !wait_core_int_delay && wait_core_int;
- assign finish_core_write_rise = !finish_core_write_delay && finish_core_write;
- //--------------------------------------------------------------
- parameter DUMMY_DATA = 'hFF;
- reg [:]axi_awaddr;
- reg [:]axi_wdata;
- reg [:]core_init_cnt;
- reg [:]core_write_cnt;
- always @(posedge clk_100M or posedge rst)
- begin
- if (rst)
- begin
- core_init_cnt <= ;
- core_write_cnt <= ;
- end
- else if (current_state == && core_init_en)
- begin
- case(core_init_cnt)
- :
- begin
- axi_awaddr <= 'h40;
- axi_wdata <= 'h0000000A;
- end
- :
- begin
- axi_awaddr <= 'h1C;
- axi_wdata <= 'h80000000;
- end
- :
- begin
- axi_awaddr <= 'h28;
- axi_wdata <= 'h00000004;
- end
- default:
- begin
- axi_awaddr <= 'h00;
- axi_wdata <= 'h00000000;
- end
- endcase
- end
- else if(current_state == && core_init_en)
- begin
- if(core_init_cnt < )
- core_init_cnt <= core_init_cnt + 'b1;
- else
- core_init_cnt <= ;
- end
- else if(current_state == && core_write_en)
- begin
- case(core_write_cnt)
- /*
- 0:
- begin
- axi_awaddr <= 7'h70;
- axi_wdata <= 32'hFFFFFFFF;
- end
- */
- :
- begin
- axi_awaddr <= 'h60;
- axi_wdata <= 'h000001E6;
- end
- :
- begin
- axi_awaddr <= 'h60;
- axi_wdata <= 'h00000186;
- end
- :
- begin
- axi_awaddr <= 'h68;
- axi_wdata <= {'h000000,cmd};
- end
- :
- begin
- axi_awaddr <= 'h68;
- axi_wdata <= {'h000000,add0};
- end
- :
- begin
- axi_awaddr <= 'h68;
- axi_wdata <= {'h000000,add1};
- end
- :
- begin
- axi_awaddr <= 'h68;
- axi_wdata <= {'h000000,add2};
- end
- :
- begin
- axi_awaddr <= 'h68;
- axi_wdata <= {'h000000,data1};
- end
- :
- begin
- axi_awaddr <= 'h68;
- axi_wdata <= {'h000000,data2};
- end
- :
- begin
- axi_awaddr <= 'h68;
- axi_wdata <= {'h000000,data3};
- end
- :
- begin
- axi_awaddr <= 'h68;
- axi_wdata <= {'h000000,DUMMY_DATA};
- end
- :
- begin
- axi_awaddr <= 'h68;
- axi_wdata <= {'h000000,DUMMY_DATA};
- end
- :
- begin
- axi_awaddr <= 'h68;
- axi_wdata <= {'h000000,DUMMY_DATA};
- end
- :
- begin
- axi_awaddr <= 'h68;
- axi_wdata <= {'h000000,DUMMY_DATA};
- end
- :
- begin
- axi_awaddr <= 'h68;
- axi_wdata <= {'h000000,DUMMY_DATA};
- end
- :
- begin
- axi_awaddr <= 'h68;
- axi_wdata <= {'h000000,DUMMY_DATA};
- end
- :
- begin
- axi_awaddr <= 'h68;
- axi_wdata <= {'h000000,DUMMY_DATA};
- end
- :
- begin
- axi_awaddr <= 'h68;
- axi_wdata <= {'h000000,DUMMY_DATA};
- end
- :
- begin
- axi_awaddr <= 'h70;
- axi_wdata <= 'h00000000;
- end
- :
- begin
- axi_awaddr <= 'h60;
- axi_wdata <= 'h00000086;
- end
- :
- begin
- axi_awaddr <= 'h20;
- axi_wdata <= 'h00000004;
- end
- :
- begin
- axi_awaddr <= 'h70;
- axi_wdata <= 'hFFFFFFFF;
- end
- :
- begin
- axi_awaddr <= 'h60;
- axi_wdata <= 'h00000186;
- end
- default:
- begin
- axi_awaddr <= 'h00;
- axi_wdata <= 'h00000000;
- end
- endcase
- end
- else if(current_state == && core_write_en)
- begin
- if(core_write_cnt < )
- core_write_cnt <= core_write_cnt + 'b1;
- else
- core_write_cnt <= ;
- end
- end
- //--------------------------------------------------------------
- reg [:]current_state;
- reg [:]next_state;
- always @ (posedge clk_100M or posedge rst)
- begin
- if(rst)
- current_state <= IDLE;
- else
- current_state <= next_state;
- end
- //--------------------------------------------------------------
- parameter [:] IDLE = 'd0 ,
- WRITE_START = 'd1 ,
- WRITE_VALID = 'd2 ,
- WRITE_READY = 'd3 ,
- WRITE_BREADY = 'd4 ,
- WRITE_END = 'd5 ,
- READ_START = 'd11 ,
- READ_VALID = 'd12 ,
- READ_READY = 'd13 ,
- READ_FINISH = 'd14 ,
- READ_END = 'd15 ;
- always @ (*)
- begin
- next_state = IDLE;
- case(current_state)
- IDLE:
- begin
- if(start_write_rise)
- next_state = WRITE_START;
- else if(start_read_rise)
- next_state = READ_START;
- else
- next_state = IDLE;
- end
- WRITE_START:
- begin
- next_state = WRITE_VALID;
- end
- WRITE_VALID:
- begin
- if(s_axi_awready && s_axi_wready)
- next_state = WRITE_READY;
- else
- next_state = WRITE_VALID;
- end
- WRITE_READY:
- begin
- if(s_axi_bvalid)
- next_state = WRITE_BREADY;
- else
- next_state = WRITE_READY;
- end
- WRITE_BREADY:
- begin
- next_state = WRITE_END;
- end
- WRITE_END:
- begin
- next_state = IDLE;
- end
- READ_START:
- begin
- next_state = READ_VALID;
- end
- READ_VALID:
- begin
- if(s_axi_arready)
- next_state = READ_READY;
- else
- next_state = READ_VALID;
- end
- READ_READY:
- begin
- if(s_axi_rvalid)
- next_state = READ_FINISH;
- else
- next_state = READ_READY;
- end
- READ_FINISH:
- begin
- next_state = READ_END;
- end
- READ_END:
- begin
- next_state = IDLE;
- end
- endcase
- end
- //-------------------------------------------------------------
- reg m_axi_awvalid;
- reg m_axi_wvalid;
- reg m_axi_arvalid;
- reg m_axi_rready;
- reg m_axi_bready;
- reg [:]m_axi_awaddr;
- reg [:]m_axi_araddr;
- reg [:]m_axi_wdata;
- reg [:]m_axi_rdata;
- always @(posedge clk_100M or posedge rst)
- begin
- if (rst)
- begin
- m_axi_awvalid <= 'b0;
- m_axi_wvalid <= 'b0;
- m_axi_arvalid <= 'b0;
- m_axi_rready <= 'b0;
- m_axi_bready <= 'b0;
- m_axi_awaddr <= ;
- m_axi_araddr <= ;
- m_axi_wdata <= ;
- m_axi_rdata <= ;
- end
- else
- begin
- m_axi_awvalid <= 'b0;
- m_axi_wvalid <= 'b0;
- m_axi_arvalid <= 'b0;
- m_axi_rready <= 'b0;
- m_axi_bready <= 'b0;
- case(current_state)
- //IDLE:
- WRITE_START:
- begin
- m_axi_awaddr <= axi_awaddr;
- m_axi_wdata <= axi_wdata;
- m_axi_awvalid <= 'b1;
- m_axi_wvalid <= 'b1;
- m_axi_bready <= 'b1;
- end
- WRITE_VALID:
- begin
- m_axi_awvalid <= 'b1;
- m_axi_wvalid <= 'b1;
- m_axi_bready <= 'b1;
- end
- WRITE_READY:
- begin
- m_axi_bready <= 'b1;
- end
- //WRITE_BREADY:
- //WRITE_END:
- READ_START:
- begin
- m_axi_araddr <= axi_araddr;
- m_axi_arvalid <= 'b1;
- end
- READ_VALID:
- begin
- m_axi_arvalid <= 'b1;
- end
- //READ_READY:
- READ_FINISH:
- begin
- m_axi_rdata <= s_axi_rdata;
- m_axi_rready <= 'b1;
- end
- //READ_END:
- default:
- begin
- m_axi_awvalid <= 'b0;
- m_axi_wvalid <= 'b0;
- m_axi_arvalid <= 'b0;
- m_axi_rready <= 'b0;
- m_axi_bready <= 'b0;
- end
- endcase
- end
- end
- //-------------------------------------------------------------
- wire s_axi_awready;
- wire s_axi_arready;
- wire s_axi_wready;
- wire s_axi_rvalid;
- wire s_axi_bvalid;
- wire [:]s_axi_rdata;
- wire io0_i;
- wire io0_o;
- wire io0_t;
- wire io1_i;
- wire io1_o;
- wire io1_t;
- wire io2_i;
- wire io2_o;
- wire io2_t;
- wire io3_i;
- wire io3_o;
- wire io3_t;
- wire ss_i;
- wire ss_o;
- wire ss_t;
- axi_quad_spi_0 U1 (
- .ext_spi_clk(clk_100M), // input wire ext_spi_clk
- .s_axi_aclk(clk_100M), // input wire s_axi_aclk
- .s_axi_aresetn(~rst), // input wire s_axi_aresetn
- .s_axi_awaddr(m_axi_awaddr), // input wire [6 : 0] s_axi_awaddr
- .s_axi_awvalid(m_axi_awvalid), // input wire s_axi_awvalid
- .s_axi_awready(s_axi_awready), // output wire s_axi_awready
- .s_axi_wdata(m_axi_wdata), // input wire [31 : 0] s_axi_wdata
- .s_axi_wstrb('b1111), // input wire [3 : 0] s_axi_wstrb
- .s_axi_wvalid(m_axi_wvalid), // input wire s_axi_wvalid
- .s_axi_wready(s_axi_wready), // output wire s_axi_wready
- .s_axi_bresp(), // output wire [1 : 0] s_axi_bresp
- .s_axi_bvalid(s_axi_bvalid), // output wire s_axi_bvalid
- .s_axi_bready(m_axi_bready), // input wire s_axi_bready
- .s_axi_araddr(m_axi_araddr), // input wire [6 : 0] s_axi_araddr
- .s_axi_arvalid(m_axi_arvalid), // input wire s_axi_arvalid
- .s_axi_arready(s_axi_arready), // output wire s_axi_arready
- .s_axi_rdata(s_axi_rdata), // output wire [31 : 0] s_axi_rdata
- .s_axi_rresp(), // output wire [1 : 0] s_axi_rresp
- .s_axi_rvalid(s_axi_rvalid), // output wire s_axi_rvalid
- .s_axi_rready(m_axi_rready), // input wire s_axi_rready
- .io0_i(io0_i), // input wire io0_i
- .io0_o(io0_o), // output wire io0_o
- .io0_t(io0_t), // output wire io0_t
- .io1_i(io1_i), // input wire io1_i
- .io1_o(io1_o), // output wire io1_o
- .io1_t(io1_t), // output wire io1_t
- .io2_i(io2_i), // input wire io2_i
- .io2_o(io2_o), // output wire io2_o
- .io2_t(io2_t), // output wire io2_t
- .io3_i(io3_i), // input wire io3_i
- .io3_o(io3_o), // output wire io3_o
- .io3_t(io3_t), // output wire io3_t
- .ss_i(ss_i), // input wire [0 : 0] ss_i
- .ss_o(ss_o), // output wire [0 : 0] ss_o
- .ss_t(ss_t), // output wire ss_t
- .cfgclk(cfgclk), // output wire cfgclk
- .cfgmclk(cfgmclk), // output wire cfgmclk
- .eos(eos), // output wire eos
- .preq(preq), // output wire preq
- .ip2intc_irpt(ip2intc_irpt) // output wire ip2intc_irpt
- );
- IOBUF dq0(
- .IO (spi_dq[]),
- .O (io0_i),
- .I (io0_o),
- .T (io0_t)
- );
- IOBUF dq1(
- .IO (spi_dq[]),
- .O (io1_i),
- .I (io1_o),
- .T (io1_t)
- );
- IOBUF dq2(
- .IO (spi_dq[]),
- .O (io2_i),
- .I (io2_o),
- .T (io2_t)
- );
- IOBUF dq3(
- .IO (spi_dq[]),
- .O (io3_i),
- .I (io3_o),
- .T (io3_t)
- );
- IOBUF spiss(
- .IO (spi_ss),
- .O (ss_i),
- .I (ss_o),
- .T (ss_t)
- );
- endmodule
关于AXI_Quad_SPI的寄存器配置的更多相关文章
- ili9325--LCD寄存器配置研究
2011-06-22 22:18:12 自己根据ili9325的规格书编写驱动.发现LCD屏没显示.于是怀疑是某些寄存器设置错误.要调试的话最好还是先熟悉寄存器的作用,调试的时候只要看到现象就能分析了 ...
- STM8串口初始化寄存器配置
//库函数配置 UART1_DeInit(); UART1_Init((u32)1000000, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, \ UART1_PARI ...
- 摄像头驱动OV7725学习笔记连载(二):0V7725 SCCB时序的实现之寄存器配置
上一篇博客主要介绍了OV7725的电气特性以及SCCB接口的时序和输出一帧图像的时序图以及数据的拼接.输出一帧图像与输出时钟PCLK有关. 上图是OV7725实现的整体框架,有点丑.FPGA描述SCC ...
- stm8s + si4463 寄存器配置
/***********************************************函 数: main功 能: 程序入口输 入: /输 出: /描 述: /**************** ...
- 与或左移右移操作在ARM寄存器配置中的作用
逻辑运算: 与运算&:与0清零 清零用与运算 或运算 |:或1置一 置一用或运算 异或 ^:不同为1 /*****单个寄存器清零置一*************************** ...
- STM32的操作过程,寄存器配置与调试过程(转载)
很多学习stm32的,为什么学习stm32他也不知道,我们所知道的就是各个论坛讨论stm32的很多,而我们很多人之所以学习stm32是很多的淘宝卖家做了大量的图片文字宣传,于是我们经不住诱惑就买了板子 ...
- AD9361寄存器配置顺序,循环模式,自收自发
:] cmd_data; :] index; begin case(index) 'h000,8'h00};//set spi -- 'h3df,8'h01};//set init -- 'h037, ...
- USB2.0学习笔记连载(十八):keil实现寄存器的配置及相关函数讲解(二)
其实之前也有提及过,Cypress公司提供的官方文件和应用手册真的可以解决很多问题.做的也很人性化,操作也及其简单,几乎只要在 TD_int()里面配置一些常用的参数即可,其他都可以不用操作. 作为一 ...
- DSP EPWM学习笔记2 - EPWM相关寄存器设置问题解析
DSP EPWM学习笔记2 - EPWM相关寄存器设置问题解析 彭会锋 本篇主要针对不太熟悉的TZ 故障捕获 和 DB 死区产生两个子模块进行学习研究 感觉TI的寄存器命名还是有一定规律可循的 SEL ...
随机推荐
- python day05 作业答案
1. b.不可以 c.tu=("alex",[11,22,{"k1":"v1","k2":["age" ...
- Ubuntu 16.04安装vsftpd 并开启ftp服务
1. 安装 sudo apt-get install vsftpd 2.可以使用下列命令来打开,关闭,重启ftp服务 sudo /etc/init.d/vsftpd start sudo /etc/i ...
- HDU 1166 敌兵布阵(线段树点更新区间求和裸题)
Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任 ...
- Symbol -- JavaScript 语言的第七种数据类型
ES5 的对象属性名都是字符串,这容易造成属性名的冲突.比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突.如果有一种机制,保证 ...
- linux测试系统使用expdp迁移数据到windos系统,11.2.0.4版本测试
测试,使用linux 系统,迁移至windos测试系统,迁移用户scott 1.源端导出(linux) 2.传输 3.目标端导入(windows) 1.源端导出,本次使用expdp 1)创建操作系统转 ...
- xdoj-1324 (区间离散化-线段树求区间最值)
思想 : 1 优化:题意是覆盖点,将区间看成 (l,r)转化为( l-1,r) 覆盖区间 2 核心:dp[i] 覆盖从1到i区间的最小花费 dp[a[i].r]=min (dp[k])+a[i]s; ...
- 限定某个目录禁止解析php 、限制user_agent 、php的配制文件、PHP的动态扩展模块
1. 限定某个目录禁止解析php(有些目录用户可以上传文件或图片,可能会被恶意者上传其它文件):编辑:/usr/local/apache2.4/conf/extra/httpd-vhosts.conf ...
- linux 的压缩 打包
1.压缩打包,常见的命令:gzip bzip2 xz zip tar gzip: 不能压缩目录 gip -[0-9] file_name 压缩级别, 默认是6 gzip file_nane ...
- Manjaro启动项目及服务配置备忘
Manjaro启动项目及服务配置备忘 =============== 系统服务GUI管理搜索 systemdgenie 并安装,类似Windows的服务管理. ================ 系统启 ...
- CSU 1588 合并果子
Description 现在有n堆果子,第i堆有ai个果子.现在要把这些果子合并成一堆,每次合并的代价是两堆果子的总果子数.求合并所有果子的最小代价. Input 第一行包含一个整数T(T<=5 ...