側(cè)(服務(wù)端) :基于OpenHarmony系統(tǒng)C-API實(shí)現(xiàn)
特性
??實(shí)時(shí)屏幕鏡像 :低延遲顯示OpenHarmony設(shè)備屏幕
?設(shè)備控制 :支持點(diǎn)擊、滑動(dòng)、按鍵等操作
?多種連接方式 :支持USB
發(fā)表于 01-22 18:34
的縮進(jìn)編排,變量的命名規(guī)則要始終保持一致。大家都知道如何排除代碼中錯(cuò)誤,卻往往忽視了對(duì)注釋的排錯(cuò)。注釋是程序的一個(gè)重要組成部分,它可以使你的代碼更容易理解,而如果
發(fā)表于 12-29 06:57
經(jīng)常見(jiàn)網(wǎng)友們說(shuō),代碼不能寫(xiě)太多了包括注釋,單片機(jī)的ROM只有幾個(gè)K的空間,其實(shí)這是表面問(wèn)題的誤解。
1、注釋是寫(xiě)不進(jìn)去hex文件的,下載到芯片里的只有你的有效代碼匯編以后生成的機(jī)器碼,
發(fā)表于 12-22 12:45
在移植內(nèi)核時(shí),用VIVADO進(jìn)行綜合實(shí)現(xiàn)后會(huì)出現(xiàn)時(shí)序違例,如圖:
雖然可以上板正常進(jìn)行開(kāi)發(fā),但是還是想把這些違例解決下^_^
檢查后,發(fā)現(xiàn)是 apb_adv_timer 這條路徑報(bào)的違例,解決方式
發(fā)表于 10-27 07:32
// Use booth-4 algorithm to conduct the multiplication計(jì)算部分積
/***
wire [32:0] part_prdt_hi_r; //高位信息(即操作數(shù)相加后從dpath返回的信息)
wire [32:0] part_prdt_lo_r;//低位信息(即需要右移的信息,參見(jiàn)蜂鳥(niǎo)書(shū)中153頁(yè)圖右移1位下面的框)
wire [32:0] part_prdt_hi_nxt; //更新后的高低位信息
wire [32:0] part_prdt_lo_nxt;
wire part_prdt_sft1_r;
wire [2:0] booth_code = cycle_0th? {muldiv_i_rs1[1:0],1\'b0} // cycle0低位補(bǔ)0,高位補(bǔ)符號(hào)位,取后三位作為編碼
: cycle_16th ? {mul_rs1_sign,part_prdt_lo_r[0],part_prdt_sft1_r} //周期結(jié)束,根據(jù)Booth算法補(bǔ)符號(hào)位與最后的低位信息
: {part_prdt_lo_r[1:0],part_prdt_sft1_r}; //取后兩位并補(bǔ)低位形成3位boothcode
//booth_code == 3\'b000 =0參考booth算法編碼表
//booth_code == 3\'b001 =1
//booth_code == 3\'b010 =1
//booth_code == 3\'b011 =2
//booth_code == 3\'b100 = -2
//booth_code == 3\'b101 = -1
//booth_code == 3\'b110 = -1
//booth_code == 3\'b111 = -0
wire booth_sel_zero = (booth_code == 3\'b000) | (booth_code == 3\'b111);
wire booth_sel_two= (booth_code == 3\'b011) | (booth_code == 3\'b100);
wire booth_sel_one= (~booth_sel_zero) & (~booth_sel_two);
wire booth_sel_sub= booth_code[2];
// 35 bits adder needed乘法中加減法操作數(shù)生成
wire [`E203_MULDIV_ADDER_WIDTH-1:0] mul_exe_alu_res = muldiv_req_alu_res; //取出返回值也即高位數(shù)值
wire [`E203_MULDIV_ADDER_WIDTH-1:0] mul_exe_alu_op2 =
({`E203_MULDIV_ADDER_WIDTH{booth_sel_zero}} & `E203_MULDIV_ADDER_WIDTH\'b0)//0*數(shù)=0
| ({`E203_MULDIV_ADDER_WIDTH{booth_sel_one }} & {mul_rs2_sign,mul_rs2_sign,mul_rs2_sign,muldiv_i_rs2}) //數(shù)字不變,僅符號(hào)拓展
| ({`E203_MULDIV_ADDER_WIDTH{booth_sel_two }} & {mul_rs2_sign,mul_rs2_sign,muldiv_i_rs2,1\'b0}) //2則左移一位,符號(hào)位不變
;
wire [`E203_MULDIV_ADDER_WIDTH-1:0] mul_exe_alu_op1 =//cycle0時(shí),裝入全0,后面填入乘數(shù),參加蜂鳥(niǎo)書(shū)中153頁(yè)部分積指向加法器的線路
cycle_0th ? `E203_MULDIV_ADDER_WIDTH\'b0 : {part_prdt_hi_r[32],part_prdt_hi_r[32],part_prdt_hi_r};
wire mul_exe_alu_add = (~booth_sel_sub);//dpath指示信號(hào)生成
wire mul_exe_alu_sub = booth_sel_sub;
wire mul_exe_alu_mul = cycle_0th? 1\'b0 //周期結(jié)束信號(hào)
: cycle_16th ? 1\'b1
: 1\'b0;
assign part_prdt_hi_nxt = mul_exe_alu_res[34:2]; //下一個(gè)部分積, 傳入dpath保存
assign part_prdt_lo_nxt = {mul_exe_alu_res[1:0], //同理,只不過(guò)每次右移兩位
(cycle_0th ? {mul_rs1_sign,muldiv_i_rs1[31:2]} : part_prdt_lo_r[32:2])
};
wire part_prdt_sft1_nxt = cycle_0th ? muldiv_i_rs1[1] : part_prdt_lo_r[1]; //設(shè)muldiv_i_rs1=10,首先在后面補(bǔ)0,此時(shí)為100,這樣muldiv_i_rs1[1]即為右移兩位后的末位,part同理
wire mul_exe_cnt_set = exec_cnt_set & i_op_mul; //控制最后一位的更新
wire mul_exe_cnt_inc = exec_cnt_inc & i_op_mul;
wire part_prdt_hi_ena = mul_exe_cnt_set | mul_exe_cnt_inc | state_exec_exit_ena;//使能信號(hào),控制傳入dpath進(jìn)行更新,dpath會(huì)傳回最新的乘積信息
wire part_prdt_lo_ena = part_prdt_hi_ena;
sirv_gnrl_dfflr #(1) part_prdt_sft1_dfflr (part_prdt_lo_ena, part_prdt_sft1_nxt, part_prdt_sft1_r, clk, rst_n);
// This mul_res is not back2back case, so directly from the adder result若不是back2back情況,可以直接取出,Booth編碼運(yùn)算后最終結(jié)果取[32:1]
wire[`E203_XLEN-1:0] mul_res = i_mul ? part_prdt_lo_r[32:1] : mul_exe_alu_res[31:0];
發(fā)表于 10-22 07:11
:“這個(gè)功能之前做過(guò)類(lèi)似的,你參考下歷史代碼?!笨僧?dāng)他打開(kāi)代碼倉(cāng)庫(kù),卻發(fā)現(xiàn)注釋寥寥,變量名像密碼一樣難懂,更找不到任何需求文檔。他硬著頭皮修改,結(jié)果上線后引發(fā)了線上故障——原來(lái)有個(gè)隱藏的業(yè)務(wù)規(guī)則,只有老員工才知道。 第二周:
發(fā)表于 07-08 15:31
?473次閱讀
想買(mǎi)個(gè)2k0300的開(kāi)發(fā)板學(xué)習(xí)龍芯和openharmony,愣是沒(méi)有看到提供openharmony源碼的,也沒(méi)與看到開(kāi)源的代碼。gitee上,openharmony的龍芯sig倉(cāng)庫(kù)也是
發(fā)表于 04-26 13:06
我有幾個(gè)關(guān)于 MCUXpresso 深色主題(模式)設(shè)置的問(wèn)題。 請(qǐng)參閱附件。 我想修改 C 代碼的注釋顏色和用于在項(xiàng)目資源管理器中突出顯示源文件的顏色。 這些在哪里發(fā)生了變化?
發(fā)表于 03-20 06:04
評(píng)論