娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

調(diào)試工具:MDK 4.72  JLink8 


一、MDK設(shè)置 


1、Target


 

                  圖1 


2.Asm 


 

                 圖2 

  1處必須預(yù)定義NO_CRP,因為在LPC1788啟動文件startup_LPC177x_8x.s中有如下代碼 


 

                 圖3 


  117-120這段代碼是NXP公司的LPC1700系列的MCU特有的一段代碼,其他公司的Cortex-M3 MCU的啟動程序是沒有這段代碼的。這段代碼是指定LPC1700的CRP加密級別的代碼段,芯片上電后會自動讀取0x02FC這一地址的值以確定加密方式,其中CRP_Key = 0xffffffff為0級加密,CRP_Key = 0x12345678為1級加密,CRP_Key = 0x87654321為2級加密,CRP_Key = 0x43218765為3級加密(最高級加密),3級加密將會禁止所有的ISP指令,也就是說,芯片將不能讀寫、不能擦除。 


  如果在圖2中的1處沒有定義了NO_CRP,118-120行代碼會被執(zhí)行,即定義CRP_key,這會導(dǎo)致退出外部RAM調(diào)試時內(nèi)核被鎖,在MDK中的Debug Setting中無法檢測到目標板;只能通過拉低P2[10]引腳后通過J_Flash軟件的Target->Connect連接目標板,然后Erase Chip擦除目標板Flash,這樣才能在Debug Setting中重新檢測到目標板


3.Linker 


 

                  圖4


1)、如果圖2中1處(使用Target對話框中的內(nèi)存布局)打勾,則表示使用默認的分散加載文件生成映像文件,其內(nèi)容為 


                   圖5 


  其中圖3中的地址1對應(yīng)于Target對話框中Read/Only Memory Areas區(qū)內(nèi)的默認存儲空間的起始地址,默認為片內(nèi)Flash;地址2是對應(yīng)于arget對話框中Read/Write Memory Areas區(qū)內(nèi)的默認存儲空間的起始地址,默認為片內(nèi)SRAM。如果此時圖1Target對話框中的Read/Only Memory Areas和Read/Write Memory Areas區(qū)域的存儲空間設(shè)置的不是默認值,則會出現(xiàn)編譯錯誤。 


  Link Control String中的內(nèi)容為(工程名為Proj1): 


 

                   圖6 


2)、如果圖2中1處不打勾,并在3處選擇了分散加載文件,則會按分散加載文件中的內(nèi)容生成映像文件;此時Target對話框中指定的RO和RW存儲空間無效。這次調(diào)試使用的分散加載文件內(nèi)容為 


 

                   圖7 


  將向量表和所有必須在root region中的library sections(如__main.o, __scatter*.o, __dc*.o, 和Region$$Table)放在起始地址為0x10000000,大小為0x10000的存儲空間中(片內(nèi)SRAM)中;將剩余的代碼,讀寫數(shù)據(jù)和零初始化數(shù)據(jù)放大起始地址為0xA0000000,大小為0x1000000的存儲空間(片外SDRAM)中。 


  Link Control String中的內(nèi)容如圖2 ,分散加載文件名為SDRAM.sct。 


3)、如果圖2中1處不打勾,且3處沒有選擇分散加載文件,則會按2處的R/O Base和R/W Base生成映像文件;此時Target對話框中指定的RO和RW存儲空間無效。 


  Link Control String中的內(nèi)容為(R/O Base和R/W Base如圖2) 


 

                   圖8 


4、Debug 


這里寫圖片描述 

                   圖9 


Load Application at Startup處不要打勾,在1處選擇初始化命令腳本,內(nèi)容為


INCLUDE MT48LC8M32LFB5.ini

//INCLUDE SST39VF160_for_download.ini


InitSDRAM();                                // Initialize memory

//EMC_NorFlashInit();


LOAD .\Flash\Lcd_LQ043T3DX0A.axf INCREMENTAL    // Download program


/* RNR */

_WDWORD(0xE000ED98, 0x00000000);            // Use No.0 MPU


/* RBAR */

_WDWORD(0xE000ED9C, 0xA0000000);            // Set MPU base addr


/* RASR */

_WDWORD(0xE000EDA0, 0x03000031);            // Set MPU size and permission


/* SHCSR */

// _WDWORD(0xE000ED24, 0x00000100);          // Enable memory managemeng fault


/* MPU_CONTROL */

_WDWORD(0xE000ED94, 0x00000005);            // Enable MPU


/* VTOR */

_WDWORD(0xE000ED08, 0x10000000);            // Set vector table offset


SP = _RDWORD(0x10000000);                   // Set stack pointer

PC = _RDWORD(0x10000004);                   // Set program counter


  10-22行的關(guān)于MPU的設(shè)置一定要有,否則程序在SDRAM中的執(zhí)行會出現(xiàn)錯誤,這是因為Cortex_M3處理器在0xA0000000-0xDFFFFFFF之間的存儲空間的默認訪問屬性是不可執(zhí)行的,是不可執(zhí)行區(qū),圖中第16行代碼通過設(shè)置MPU region屬性及容量寄存器MPURASR,使其以0xA0000000為起始地址的32MB(MPURASR[5:1]=0b11000)存儲空間為共享內(nèi)存(MPURASR[26:24]=0b011),且此區(qū)允許取指(MPURASR[28]=0)。 


  InitSDRAM()函數(shù)在MT48LC8M32LFB5.ini中,作用為初始化外部SDRAM,其內(nèi)容為


FUNC void PinSel(int p1, int n1, int f1)

{

    _WDWORD(0x4002C000 + (p1 * 32 + n1) * 4, 0x8 | f1);

}


FUNC void InitSDRAM(void)

{

    int i;


    PinSel(2,16,1);

    PinSel(2,17,1);

    PinSel(2,18,1);

    PinSel(2,20,1);

    PinSel(2,24,1);

    PinSel(2,28,1);

    PinSel(2,29,1);

    PinSel(2,30,1);

    PinSel(2,31,1);


    for(i = 0; i < 32; i++)

        PinSel(3,i,1);


    for(i = 0; i < 21; i++)

        PinSel(4,i,1);


    PinSel(4,24,1);

    PinSel(4,25,1);

    PinSel(4,30,1);

    PinSel(4,31,1);


    /* PCONP |= 1 << 11 */

    _WDWORD(0x400FC0C4, 0x04288FDE);    // Power On EMC


    /* EMCCONTROL |= 1 */

    _WDWORD(0x2009C000, 0x00000001);    // Enable EMC


    /* EMCDLYCTL */

    _WDWORD(0x400FC1DC, 0x00081818);    // Config data read delay


    /* EMCCONFIG */

    _WDWORD(0x2009C008, 0x00000000);    // Little endian mode


    /* DYNAMICCONTROL */

    _WDWORD(0x2009C020, 0x00000003);    // Set normal self refresh mode, normal power mode

                                        // CE always HI

                                        // Enable clock out

                                        // Clock do not stop during idle


    /* DYNAMICREFRESH */

    _WDWORD(0x2009C024, 0x0000001F);    // refresh timing 


    /* DYNAMICREADCONFIG */

    _WDWORD(0x2009C028, 0x00000001);    // read timing 


    /* DYNAMICRP */

    _WDWORD(0x2009C030, 0x00000002);    // tRP


    /* DYNAMICRAS */

    _WDWORD(0x2009C034, 0x00000003);    // tRAS


    /* DYNAMICSREX */

    _WDWORD(0x2009C038, 0x00000005);    // tSREX


    /* DYNAMICAPR */

    _WDWORD(0x2009C03C, 0x00000001);    // tAPR


    /* DYNAMICDAL */

    _WDWORD(0x2009C040, 0x00000005);    // tDAL


    /* DYNAMICWR */

    _WDWORD(0x2009C044, 0x00000003);    // tWR


    /* DYNAMICRC */

    _WDWORD(0x2009C048, 0x00000004);    // tRC


    /* DYNAMICRFC */

    _WDWORD(0x2009C04C, 0x00000004);    // tRFC


    /* DYNAMICXSR */

    _WDWORD(0x2009C050, 0x00000005);    // tXSR


    /* DYNAMICRRD */

    _WDWORD(0x2009C054, 0x00000001);    // tRRD


    /* DYNAMICMRD */

    _WDWORD(0x2009C058, 0x00000003);    // tMRD


    /* DYNAMICCASRAS0 */

    _WDWORD(0x2009C104, 0x00000303);    // RAS/CAS Latency


    /* DYNAMICCONFIG0 */

    _WDWORD(0x2009C100, 0x00004500);    // Config device type as SDRAM

                                        // Config address mapping


    _sleep_(100);                       // Wait 100 ms


    /* DYNAMICCONTROL */

    _WDWORD(0x2009C020, 0x00000183);    // nop command


    _sleep_(100);                       // Wait 100 ms


    /* DYNAMICCONTROL */

    _WDWORD(0x2009C020, 0x00000103);    // pre-charge command


//    /* DYNAMICREFRESH */

//    _WDWORD(0x2009C024, 0x00000002);    // refresh timing 


    _sleep_(100);                       // Wait 100 ms


    /* DYNAMICREFRESH */

    _WDWORD(0x2009C024, 0x0000001F);    // refresh timing 


    /* DYNAMICCONTROL */

    _WDWORD(0x2009C020, 0x00000083);    // mode command

    _RDWORD(0xA0000000 | (0x32 << (2 + 2 + 8)));


    _sleep_(100);                       // Wait 100 ms


    /* DYNAMICCONTROL */

    _WDWORD(0x2009C020, 0x00000003);    // noamal command


    /* DYNAMICCONFIG0 */

    _WDWORD(0x2009C100, 0x00084500);    // enable buffer


    _sleep_(100);                       // Wait 100 ms

}


5、Utilities 


 

                  圖片10 


  1處不能打勾,這個選項的意思是在進入調(diào)試前先更新目標板,但是我們并沒有配置目標板的flash,所以這個選項如果不去掉,在調(diào)試時就會彈出錯誤,大意是在xxxx地址沒有找到算法。 


6、Utilities Setting 


 

                  圖片11 


  因為是在外部RAM中調(diào)試,所以1中不用加載Flash編程算法,左上角選擇Erase Sectors或Do not Erase都可以。 


   二、問題總結(jié)


1、在外部RAM中調(diào)試,程序中不要有操作外部RAM的代碼,初始化也不要有,包括對RAM相關(guān)引腳的操作,RAM的初始化和引腳的初始化要放到j(luò)link的下載配置文件MT48LC8M32LFB5.ini中,主要是對LPC的寄存器進行相關(guān)配置。


2、在system_LPC177x_8x.c的SystemInit()函數(shù)中如圖183-188行關(guān)于時鐘選擇設(shè)置部分要注釋掉,因為LPC1788復(fù)位后是以IRC作為時鐘源的,當(dāng)將程序下載到外部RAM中時,外部RAM是在12MHz的IRC下運行的,所以更改CPU或EMC時鐘會使程序在外部RAM運行出錯


3、步驟 


1)、Target或Linker 


2)、Asm (LPC1788特有) 


3)、Debug 


4)、Utilities


關(guān)鍵字:LPC1788  外部RAM  調(diào)試總結(jié) 引用地址:LPC1788在外部RAM調(diào)試總結(jié)

上一篇:深度討論32復(fù)位及SystemInit函數(shù)在程序中的作用
下一篇:lpc1768中結(jié)構(gòu)體在RAM中的存儲格式

推薦閱讀

MIPS架構(gòu)開放計劃將為業(yè)界提供一個被驗證的、行業(yè)標準的、受專利保護的、免費的RISC架構(gòu),該計劃旨在推動Wave旗下MIPS和業(yè)界半導(dǎo)體公司的廣泛合作。 Wave Computing(以下簡稱Wave)是一家位于美國硅谷、致力于推動人工智能深度學(xué)習(xí)從邊緣計算到數(shù)據(jù)中心的計算加速方案的公司。目前Wave正式宣布即將開放MIPS架構(gòu)(ISA),為全球的半導(dǎo)體企業(yè)、開發(fā)人員及...
  單片機的種類很多,PIC單片機(Peripheral Interface Controller)是一種用來開發(fā)和控制外圍設(shè)備的集成電路(IC)。一種具有分散作用(多任務(wù))功能的CPU。與人類相比,大腦就是CPU,PIC 共享的部分相當(dāng)于人的神經(jīng)系統(tǒng)。  PIC單片機有計算功能和記憶內(nèi)存像CPU并由軟件控制運行。然而,處理能力—般,存儲器容量也很有限,這取決于PIC的類型。但是...
集微網(wǎng)12月18日消息,今天vivo宣布,全新的OriginOS系統(tǒng)將在vivo X60系列上全球首發(fā)亮相,和X60系列一起,進入設(shè)計、流暢、便捷的全新世界。據(jù)悉,OriginOS從用戶需求出發(fā),致力于在設(shè)計、流暢、便捷等方面匹配用戶對體驗的期待,并希望通過全新的交互解決方案,解決用戶數(shù)字生活中所面臨的問題,擁有“原景視窗”、“變形器”、“交互池”、“超級卡包”...

史海拾趣

問答坊 | AI 解惑

關(guān)于usb device時vbus是否必須連接

在設(shè)計一個9b92的板子,請問之前有人用過別的型號的usb 接口的功能么. 但作為usb device用時,是否一定要把vbus上拉。 我的板不從usb去電,是否可以通過軟件在上電后啟動usb口進行枚舉? 因為我想省下vbus那個腳做io :-),LM的腳的復(fù)用的也太 ...…

查看全部問答∨

那里可以下到魅族M8和宇龍酷派N90手機的原理圖啊?想知道他們用的什么手機基帶芯片,他們的GSM協(xié)議棧怎么實現(xiàn)的。

那里可以下到魅族M8和宇龍酷派N90手機的原理圖啊?想知道他們用的什么手機基帶芯片,他們的GSM協(xié)議棧怎么實現(xiàn)的。…

查看全部問答∨

請問IC設(shè)計和嵌入式系統(tǒng)開發(fā)哪個更有前景

我剛上大二,對IC設(shè)計和嵌入式系統(tǒng)開發(fā)都有一定的興趣,我是讀電子的,同時對軟件也很感興趣,所以為了避免茫然,我想定一個長遠的目標,從而更好的努力。所以我想知道這兩者哪個更有前景呢,說白了就是以后出來哪個薪水相對來說會更高呢。我該如何 ...…

查看全部問答∨

西門子300和觸摸屏問題

鍋爐房的plc300系列有個觸摸屏,現(xiàn)在出現(xiàn)個現(xiàn)象,有三個高壓泵,2#一直運行中,1#3#備用,現(xiàn)在啟動1#泵觸摸屏?xí)@示氣壓極高,導(dǎo)致鍋爐停爐,但是起3#就沒這種現(xiàn)象,高手們都來分析下,存在干擾?…

查看全部問答∨

關(guān)于MCS51的特殊寄存器問題

TCON的字節(jié)地址是88H,TMOD是89H,而TCON是可位尋址的,也就是說TCON中IE0位地址也是89H,豈不是和TMOD地址重復(fù)?…

查看全部問答∨

論壇有群嗎?

如題。T3論壇有群嗎~~作為一個愛好者。希望和大家一起討論交流。一起學(xué)習(xí),共同進步~~…

查看全部問答∨

速度性能的應(yīng)用示例方案——傳統(tǒng)的GPIB配置與經(jīng)過優(yōu)化的開關(guān)-源表配置

吉時利707B型開關(guān)主機和2636A型源表的優(yōu)化配置時獲得的速度性能的應(yīng)用實例方案,有如下2個介紹: 方案1:傳統(tǒng)的GPIB配置 此配置如圖1所示。與黃色陰影部分的任務(wù)相關(guān)的時間進行了吞吐能力對比。藍色陰影部分的執(zhí)行任務(wù)的時間未進行吞吐能力對比 ...…

查看全部問答∨

4~20MA電流采集電路參考

現(xiàn)在很多儀表都是4~20MA電流方式進行信號遠傳,那我們就找到資料電流采集上的一些處理吧! 同時電源處理部分也可以學(xué)習(xí)下! …

查看全部問答∨

問一下裸板上錫的問題

如題 如何在光板/裸板上上錫呢?就是板材已經(jīng)是加了阻焊油墨的 但是觸點都是類似于金手指那種,亮銅片的感覺。 想尋一個可以手工上錫的方法。 如下圖這種光板 …

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 四平市| 大石桥市| 洛阳市| 安图县| 昭苏县| 长岭县| 大石桥市| 梓潼县| 斗六市| 双峰县| 岱山县| 上饶县| 通辽市| 卢氏县| 临澧县| 朔州市| 建德市| 乡城县| 昌邑市| 安化县| 邵武市| 象州县| 北川| 永昌县| 南溪县| 嘉峪关市| 黑龙江省| 承德县| 玉林市| 嘉峪关市| 平和县| 九寨沟县| 巩义市| 五大连池市| 柞水县| 广汉市| 开鲁县| 宁化县| 孟州市| 始兴县| 禄劝|