一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

干貨:PSoC SWDT在Standalone下的應(yīng)用

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-10-30 10:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

01、Author

Hank Fu (付漢杰) Staff FAE embedded, Xilinx, Inc. hankf@xilinx.com

02、問(wèn)題

工程師反映,根據(jù) MPSoC SWDT 在 Standalone 下的例子 xwdtps_polled_example.c,不能實(shí)現(xiàn) MPSoC 的 PS 復(fù)位。SWDT 例子來(lái)自于目錄 /Xilinx/SDK/2018.3/data/embeddedsw/XilinxProcessorIPLib/drivers/wdtps_v3_1/examples/。SWDT 例子 xwdtps_polled_example.c 只檢查了超時(shí)狀態(tài),沒(méi)有實(shí)現(xiàn)復(fù)位。工程師把其中的“XWdtPs_DisableOutput(&Watchdog, XWDTPS_RESET_SIGNAL)”改為“XWdtPs_EnableOutput(&Watchdog, XWDTPS_RESET_SIGNAL)”,仍然不能復(fù)位。


工程師根據(jù) FSBL 的 main.c 中的 InitWatchDog( ),添加代碼后,依然不能使 MPSoC 的 PS 復(fù)位。

03、分析

3.1. FSBL 的 main.c

main.c 是 Zynq-7000 的 FSBL 的代碼。客戶使用 SOurce Insight 分析代碼時(shí),使用了錯(cuò)誤的文件。

3.2. MPSoC 的 FSBL
MPSoC 的 FSBL 的主文件是 xfsbl_main.c,wdt 的代碼在 xfsbl_misc_drivers.c 和 xfsbl_misc_drivers.h 中,初始化 WDT 的函數(shù)是 u32 XFsbl_InitWdt(void),宏定義 XFSBL_WDT_EXPIRE_TIME 定義了 FSBL 中 wdt 的超時(shí)時(shí)間。

在 XFsbl_InitWdt(void)中,初始化并啟動(dòng) WDT(XWdtPs_RestartWdt( ))后,直接使用 sleep(20),睡眠 20 秒。睡眠過(guò)程中,因?yàn)?WDT 超時(shí),MPSoC 的 PS 會(huì)被復(fù)位。這說(shuō)明 FSBL 關(guān)于 WDT 代碼是正確的。

3.3. Standalone 下的 WDT
對(duì)比 MPSoC FSBL 初始化 WDT 的函數(shù) XFsbl_InitWdt( ),發(fā)現(xiàn)它設(shè)置了 PMU 的 ERROR_SRST_EN_1 Register 和 ERROR_EN_1 Register。把相關(guān)代碼復(fù)制到 Standalone 下的代碼,在初始化 WDT 之前運(yùn)行。重新編譯后,WDT 超時(shí)會(huì)復(fù)位 MPSoC 的 PS。

3.4. 再次運(yùn)行時(shí),設(shè)置 PMU 的 ERROR_SRST_EN_1 后,PS 馬上復(fù)位。

WDT 超時(shí)后,再次使用 Debugger 運(yùn)行時(shí),設(shè)置 PMU 的 ERROR_SRST_EN_1 后,WDT 還沒(méi)有被初始化時(shí),PS 馬上被復(fù)位。檢查 PMU ERROR_STATUS_1 Register,發(fā)現(xiàn) WDT 的超時(shí)狀態(tài)為 1。于是把讀取到的 ERROR_STATUS_1 的值,再寫(xiě)回 ERROR_STATUS_1 Register,清除 WDT 的超時(shí)狀態(tài)。

這樣在 WDT 超時(shí)后,設(shè)置 PMU 的 ERROR_SRST_EN_1 后,PS 不會(huì)馬上被復(fù)位。

3.5. FPD_SWDT 和 LPD_SWDT

工程師發(fā)現(xiàn)使用 LPD_SWDT,能復(fù)位 PS;換成 FPD_SWDT,不能復(fù)位 PS。


在設(shè)置 PMU 的 ERROR_SRST_EN_1 Register 和 ERROR_EN_1 Register 時(shí),LPD_SWDT 和 FPD_SWDT 有各自的使能位。增加設(shè)置 FPD_SWDT 的使能位后,換成 FPD_SWDT,也能復(fù)位 PS。

#define PMU_GLOBAL_ERROR_SRST_EN_1 ( ( PMU_GLOBAL_BASEADDR ) + 0X0000056CU )
#define PMU_GLOBAL_ERROR_SRST_EN_1_LPD_SWDT_MASK 0X00001000U
#define PMU_GLOBAL_ERROR_SRST_EN_1_FPD_SWDT_MASK 0X00002000U


04、Vivado 設(shè)置

使用 WDT,要在 Vivado 里的 PCW 里,使能對(duì)應(yīng)的 WDT。


05、相關(guān)代碼

5.1. 檢查和清除 PMU 寄存器

xil_printf("/r/n" );
u32_reg = Xil_In32(0xFFD80530);
xil_printf("Old PMU ERROR_STATUS_1 (PMU_GLOBAL) Register: %x./r/n", u32_reg );
Xil_Out32(0xFFD80530, u32_reg); // Clear PMU ERROR_STATUS_1 (PMU_GLOBAL) Register

u32_reg = Xil_In32(0xFFD80540);
xil_printf("Old PMU ERROR_STATUS_2 (PMU_GLOBAL) Register: %x./r/n", u32_reg );
Xil_Out32(0xFFD80540, u32_reg); // Clear PMU ERROR_STATUS_2 (PMU_GLOBAL) Register

u32_reg = Xil_In32(0xFFD80530);
xil_printf("New PMU ERROR_STATUS_1 (PMU_GLOBAL) Register: %x./r/n", u32_reg );

u32_reg = Xil_In32(0xFFD80540);
xil_printf("New PMU ERROR_STATUS_2 (PMU_GLOBAL) Register: %x./r/n", u32_reg );


5.2. 檢查 SWDT 寄存器狀態(tài)

void CheckWDTRegisterValue( u32 EffectiveAddress )
{
u32 u32_reg;

u32_reg = XWdtPs_ReadReg(EffectiveAddress, XWDTPS_ZMR_OFFSET);
xil_printf("WDT Zero Mode Register: %x./r/n", u32_reg );
u32_reg = XWdtPs_ReadReg(EffectiveAddress, XWDTPS_CCR_OFFSET);
xil_printf("WDT Counter Control Register: %x./r/n", u32_reg );
u32_reg = XWdtPs_ReadReg(EffectiveAddress, XWDTPS_RESTART_OFFSET);
xil_printf("WDT Restart Register: %x./r/n", u32_reg );
u32_reg = XWdtPs_ReadReg(EffectiveAddress, XWDTPS_SR_OFFSET);
xil_printf("WDT Status Register: %x./r/n", u32_reg );
}

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • PSoC
    +關(guān)注

    關(guān)注

    12

    文章

    175

    瀏覽量

    93240
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    電機(jī)原理及重要公式(干貨

    純分享帖,需要者可點(diǎn)擊附件免費(fèi)獲取完整資料~~~*附件:電機(jī)原理及重要公式(干貨).doc 【免責(zé)聲明】本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問(wèn)題,請(qǐng)第一時(shí)間告知,刪除內(nèi)容!
    發(fā)表于 05-20 17:47

    為什么無(wú)法定制板上重新刷新PSoC6?

    無(wú)法定制板上重新刷新 PSoC6
    發(fā)表于 04-21 07:56

    PSoC 4-IEC 60730 B級(jí)和IEC 61508 SIL安全軟件庫(kù)

    電子發(fā)燒友網(wǎng)站提供《PSoC 4-IEC 60730 B級(jí)和IEC 61508 SIL安全軟件庫(kù).pdf》資料免費(fèi)下載
    發(fā)表于 04-19 17:05 ?0次下載

    英飛凌發(fā)布PSOC 4 Multi-Sense,通過(guò)電感感應(yīng)和液體感應(yīng)解決方案擴(kuò)展電容感應(yīng)技術(shù)

    推出新的專(zhuān)有電感感應(yīng)技術(shù),以及非侵入式和非接觸式液體感應(yīng)解決方案擴(kuò)展其領(lǐng)先的電容感應(yīng)技術(shù)CAPSENSE。PSOC 4為開(kāi)發(fā)人員開(kāi)發(fā)新人機(jī)接口(HMI)和感應(yīng)解決方案帶來(lái)了無(wú)限的可能性。從帶有金屬觸
    的頭像 發(fā)表于 03-27 12:44 ?310次閱讀
    英飛凌發(fā)布<b class='flag-5'>PSOC</b> 4 Multi-Sense,通過(guò)電感感應(yīng)和液體感應(yīng)解決方案擴(kuò)展電容感應(yīng)技術(shù)

    英飛凌發(fā)布全新高性能PSOC Control微控制器系列

    英飛凌推出基于Arm Cortex-M33的最新高性能微控制器(MCU)系列PSOC Control。ModusToolbox系統(tǒng)設(shè)計(jì)工具和軟件的支持,這款綜合全面的解決方案使開(kāi)發(fā)人員能夠輕松創(chuàng)建高性能、高效率且安全的電機(jī)控
    的頭像 發(fā)表于 02-20 09:22 ?752次閱讀

    英飛凌PSOC Control C3正式問(wèn)世

    近期,英飛凌公司宣布其最新的PSOC Control系列中的C3產(chǎn)品已經(jīng)正式問(wèn)世,并宣布量產(chǎn)。作為PSOC Control系列的首個(gè)量產(chǎn)產(chǎn)品,PSOC Control C3的推出標(biāo)志著英飛凌
    的頭像 發(fā)表于 02-08 14:45 ?775次閱讀

    英飛凌推出PSOC? Control MCU,提升電機(jī)控制與功率轉(zhuǎn)換效能

    系統(tǒng)設(shè)計(jì),旨在提升系統(tǒng)性能與效率。 PSOC? Control C3系列分為入門(mén)級(jí)和主流級(jí)兩大產(chǎn)品線,提供了豐富的性能、功能和存儲(chǔ)選項(xiàng),兼具擴(kuò)展性與兼容性。ModusToolbox?系統(tǒng)設(shè)計(jì)工具和軟件的支持,開(kāi)發(fā)人員可以輕松
    的頭像 發(fā)表于 02-06 11:16 ?781次閱讀

    英飛凌PSoC 4000T榮獲芯片技術(shù)突破獎(jiǎng)

    “OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)”近期深圳舉行,OFweek 2024物聯(lián)網(wǎng)行業(yè)年度評(píng)選也同期公布獲獎(jiǎng)名單及頒獎(jiǎng)。英飛凌受邀參與大會(huì)并發(fā)表演講。英飛凌科技的產(chǎn)品PSoC 4000T榮獲芯片技術(shù)突破獎(jiǎng)。
    的頭像 發(fā)表于 01-16 15:55 ?571次閱讀

    基于PSOC6的智能環(huán)境監(jiān)控系統(tǒng)

    本項(xiàng)目是基于PSOC6進(jìn)行開(kāi)發(fā),它具有以下特性Psoc6-evaluationkit-062S2是RT-Thread聯(lián)合英飛凌推出的一款集成32位雙核CPU子系統(tǒng)(ARMCortex-M4
    的頭像 發(fā)表于 01-07 19:54 ?819次閱讀
    基于<b class='flag-5'>PSOC</b>6的智能環(huán)境監(jiān)控系統(tǒng)

    英飛凌推出PSOC? Control MCU系列,用于工業(yè)和消費(fèi)應(yīng)用的電機(jī)控制與功率轉(zhuǎn)換

    英飛凌科技股份公司近日推出全新PSOC? Control微控制器(MCU)系列。該系列適用于新一代工業(yè)和消費(fèi)電機(jī)控制以及功率轉(zhuǎn)換系統(tǒng)應(yīng)用,包括家用電器、電動(dòng)工具、可再生能源產(chǎn)品、工業(yè)驅(qū)動(dòng)器,以及照明
    的頭像 發(fā)表于 09-25 10:32 ?787次閱讀

    如何在PSoC64中使用雙CPU?

    有沒(méi)有人能夠 PSoC64 中使用雙 CPU? 要在 PSoC64 上運(yùn)行應(yīng)用程序,必須使用正確的安全和配置文件。 同時(shí)使用 ARM0+ 和 ARM4 處理器的應(yīng)用程序中,它們的位
    發(fā)表于 09-23 08:16

    PSOC Cy8C6347無(wú)法啟動(dòng)怎么解決?

    。我們能夠成功地對(duì)設(shè)備進(jìn)行重新編程。 在我看來(lái),這些都表明大多數(shù)情況,一切都在進(jìn)行中。根據(jù)我的觀察,我不認(rèn)為這是由于向 PSOC 提供的信號(hào)/電源造成的。雖然可能性不大,但我還是想知道是否啟動(dòng)代碼出現(xiàn)了故障。 有沒(méi)有辦法
    發(fā)表于 07-23 08:17

    如何同時(shí)使用多個(gè)Jlink對(duì)多個(gè)psoc6進(jìn)行編程?

    OpenOCD 2.JLNK連接 PSOC6 時(shí)失敗嗎? 當(dāng)我用 miniprog4 將同一個(gè) PSOC6 與 cypress 編程器連接時(shí),它連接正常 ,是 jlink 程序 PSOC
    發(fā)表于 07-22 07:18

    使用PSoC5LP的過(guò)程中,遇到PSoC5LPEFT干擾時(shí)復(fù)位的問(wèn)題怎么解決?

    我使用 PSoC5LP 的過(guò)程中(>8 年),我曾多次驗(yàn)證測(cè)試中遇到 PSoC5LP EFT 干擾時(shí)復(fù)位的問(wèn)題。 大多數(shù)情況
    發(fā)表于 07-05 07:26

    PSOC6閃存寫(xiě)入會(huì)禁用中斷數(shù)毫秒 ,為什么?

    我們使用的是 PSOC63。 我們觀察到,向閃存寫(xiě)入數(shù)據(jù)時(shí),即使非阻塞模式,所有中斷也會(huì)被禁用幾毫秒! 調(diào)查閃存驅(qū)動(dòng)程序的源代
    發(fā)表于 07-04 07:22