2018中文字幕在线_中文字幕人妻伦伦精品_欧美人与禽zoz0性伦交视频_午夜精品福利视频_欧美丝袜乱插视频_欧美特黄免费一级大片_日本浓厚舌吻中文字幕_亚洲av网站大全_不卡不卡不卡在线播放_日韩精品无码小辣椒一区二区

產(chǎn)品概述

  • 如何查看寄存器值

    在調(diào)試的過程中,時(shí)常需要查看寄存器值,以確認(rèn)配置是否正常寫入或者手動(dòng)修改某些位。

    支持的交互方式列舉如下。

     無論是哪種交互方式,都要注意
    • 內(nèi)容只有在debug暫停時(shí)會(huì)更新
    • 寄存器對(duì)應(yīng)位的讀寫屬性,如只寫位通常只能讀到 "0“

    1、通過svc文件。將芯片對(duì)應(yīng)的svc文件加入到工程(部分驅(qū)動(dòng)庫已經(jīng)包含在chip目錄下)。

    ● 打開Peripherals Pane的視圖

    ● 進(jìn)入調(diào)試界面,選擇要查看的外設(shè)。toggle點(diǎn)擊可以取消查看。

    ● 調(diào)試界面可以看到對(duì)應(yīng)外設(shè)的寄存器內(nèi)容


    2、通過Frame Pane中的Memory tab。如果您手中暫時(shí)沒有svc文件,也可以通過查看memory區(qū)內(nèi)容獲得寄存器狀態(tài)。

    ● 確保Frame Pane處于打開狀態(tài)。

    ● 對(duì)照芯片使用手冊(cè),查詢外設(shè)基地址。

    ● 定位Memory地址。如下圖。寄存器地址為基址+Offset值。

  • 如何在CDK環(huán)境下加入math庫

    如果代碼要用math庫中的函數(shù),需要做

    1、文件中 #include

    2、修改link tab的內(nèi)容。將連接類型改成whole-archive,并在link flags中增加 -lm,如下圖所示:


  • CDK怎么恢復(fù)默認(rèn)窗口顯示配置

    如果不小心關(guān)閉了一些顯示窗口,比如調(diào)試時(shí)的匯編窗口、Frame Info窗口、Debugger窗口……,找不到恢復(fù)地方可以使用一鍵恢復(fù)默認(rèn)顯示。

    1.點(diǎn)擊菜單欄中的“Windows”,再點(diǎn)擊“Reset View to Defaults”

  • 如何把變量或函數(shù)放到指定位置

    如何實(shí)現(xiàn)變量的絕對(duì)定位


    CDK編譯環(huán)境使用了GNU C Complier,簡(jiǎn)稱GCC。GCC使用ld腳本對(duì)代碼對(duì)象進(jìn)行鏈接,將多個(gè)輸入文件整合成一個(gè)輸出文件。

    在一些特殊的場(chǎng)合,我們需要對(duì)代碼中的一些內(nèi)容實(shí)現(xiàn)精確的定位。

    這里我們分兩個(gè)方面來介紹,分別是變量的絕對(duì)定位和函數(shù)(代碼段)的絕對(duì)定位。

  • 變量的絕對(duì)定位

    假設(shè)要實(shí)現(xiàn)將wData[] 放到程序存儲(chǔ)區(qū) 0x9000的位置。需要做以下兩個(gè)操作

    1. 首先在代碼文件中,將變量歸入某個(gè)section,這個(gè)例子里是FlashData段。

    __attribute__((section(".FlashData"))) const uint32_t wData[] = {0x1, 0x2}; //在這種絕對(duì)定位的情況下,關(guān)鍵字 const 不是必須的。

    < /FONT >

    < P >   2.  其次,要對(duì)ld文件進(jìn)行修改。

    增加以下內(nèi)容,將FlashData段起始地址定位在0x9000。

    .FlashData 0x9000:
    {
    . = ALIGN(0x4) ;
    *(.FlashData)
    *(.FlashData.*)
    } > ROM

    再重新編譯,就可以在map文件上看到:

  • 函數(shù)加載到RAM區(qū)

    有時(shí)候,會(huì)希望有一些代碼可以快速取址并運(yùn)行。其中一個(gè)實(shí)現(xiàn)的方法是把函數(shù)定位到RAM區(qū)。

    假設(shè)要實(shí)現(xiàn)將function() 放到RAM。需要做以下兩個(gè)操作:

    1. 首先在代碼文件中,將函數(shù)歸入某個(gè)section,這個(gè)例子里是codeinram段。

    __attribute__((section(".codeinram"))) void function1(void);

    2.  其次,要對(duì)ld文件進(jìn)行修改。

  • 庫程序編譯報(bào)錯(cuò)

    1、如果拿到的庫程序第一次編譯報(bào)錯(cuò),錯(cuò)誤提示如下:



    這是因?yàn)閹彀l(fā)布時(shí)帶了一些編譯選項(xiàng),點(diǎn)擊CDK“清除”快捷按鈕清除一下工程,再重新編譯即可。

  • 基本連接方法

    1、芯片放在燒錄器上燒寫時(shí)需關(guān)注芯片放置的位置,有沒有放反等等。

    2、芯片在板燒寫時(shí),需要注意

    ● 燒寫需要用到的5個(gè)信號(hào)(VDD,VSS,SWD,SWCLK,RST)有沒有都連到燒寫器上

    ● VDD和VSS之間的電容有沒有超過100uF,超過的話可能需要在燒錄器這邊的VDD和VSS之間并個(gè)小電容(如500ohm)來對(duì)板子上的大電容進(jìn)行放電

    ● SWD,SWCLK和RST線的路徑上有沒有串電阻或并電容,這些都會(huì)影響燒寫時(shí)序。電路設(shè)計(jì)時(shí)要盡量避免這樣的電路。  如果應(yīng)用上不得不有這些阻容,電容<101pF,電阻<1Kohm

  • 錯(cuò)誤提示

    1、 可能的原因是沒有選擇正確的下載文件,或者下載文件的長(zhǎng)度為0。

  • CDK可以燒錄,燒錄器燒錄失敗

    當(dāng)遇到CDK環(huán)境下可以燒錄代碼,但是拿到燒錄器上反而提示燒錄失敗的現(xiàn)象時(shí),請(qǐng)檢查:

    ihex文件的大小是不是超過了芯片的最大DROM size?

    如果超過了,再檢查ld文件,是不是出現(xiàn)了段定義錯(cuò)誤?如下面ROM段的LENGTH。


    MEMORY

    {

    ROM(RX)   : ORIGIN = 0x00000000,  LENGTH = 64K

    RAM(RWX)  : ORIGIN = 0x20000000,  LENGTH = 4K

    }