久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4171|回復(fù): 14
打印 上一主題 下一主題
收起左側(cè)

stm32單片機(jī)怎樣在運(yùn)行時(shí)獲取lr寄存器的值,開(kāi)發(fā)環(huán)境使用keil5

[復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 100 黑幣 回復(fù)本帖可獲得 10 黑幣獎(jiǎng)勵(lì)! 每人限 1 次
跳轉(zhuǎn)到指定樓層
樓主
如題,我想在運(yùn)行時(shí)獲取lr寄存器,用來(lái)記錄函數(shù)調(diào)用棧,但是用了很多方法都不可以,我嘗試了如下方法:
方法1如下,此種方法keil可以編譯通過(guò),但是無(wú)法正確獲取lr寄存器(或許是因?yàn)榘l(fā)生了跳轉(zhuǎn),lr被覆蓋):
static inline __asm uint32_t readlr(void)
{
        MOV     R0, lr
        bx lr
}


方法2如下(gcc的內(nèi)聯(lián)匯編),此種方法gcc下可以編譯通過(guò),但keil下不行,lr寄存器未定義:
__asm volatile ("mov %0,lr":"=r"(return_addr));

方法3如下,keil下編譯會(huì)提示找不到lr寄存器未定義:
__asm        {
               
                }

大佬們求助哇!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:979299 發(fā)表于 2022-6-11 11:42 | 只看該作者
看起來(lái)好厲害的樣子,C語(yǔ)言調(diào)用匯編語(yǔ)言
回復(fù)

使用道具 舉報(bào)

板凳
ID:301191 發(fā)表于 2022-6-16 02:27 | 只看該作者
頂一下
回復(fù)

使用道具 舉報(bào)

地板
ID:844772 發(fā)表于 2022-6-16 09:01 | 只看該作者
沒(méi)看懂你的意思,lr記錄的是函數(shù)返回后,給pc用的下一條地址,不是函數(shù)地址啊。bx  lr 也不大對(duì)啊,是不是bx R0做強(qiáng)制跳轉(zhuǎn)啊或者M(jìn)OV PC LR做程序調(diào)用返回?
回復(fù)

使用道具 舉報(bào)

5#
ID:248705 發(fā)表于 2022-6-23 12:16 | 只看該作者
glinfei 發(fā)表于 2022-6-16 09:01
沒(méi)看懂你的意思,lr記錄的是函數(shù)返回后,給pc用的下一條地址,不是函數(shù)地址啊。bx  lr 也不大對(duì)啊,是不是b ...

我理解你的意思,上面那段代碼無(wú)論是bx r0 還是bx lr其實(shí)不重要,lr的值已經(jīng)修改了,我是想寫(xiě)一個(gè)內(nèi)存管理的debug,每次malloc都能夠記錄從哪里發(fā)生的調(diào)用,現(xiàn)在gcc下面能正常記錄,keil下已經(jīng)放棄了
回復(fù)

使用道具 舉報(bào)

6#
ID:248705 發(fā)表于 2022-6-23 12:17 | 只看該作者
回復(fù)

使用道具 舉報(bào)

7#
ID:248705 發(fā)表于 2022-6-23 12:18 | 只看該作者
興安xa 發(fā)表于 2022-6-11 11:42
看起來(lái)好厲害的樣子,C語(yǔ)言調(diào)用匯編語(yǔ)言

大部分鏈接器都支持的
回復(fù)

使用道具 舉報(bào)

8#
ID:532541 發(fā)表于 2022-6-24 08:38 | 只看該作者

LR就是R14可以keil在寄存器中看到,調(diào)試時(shí),單步或斷的停下后觀察R14的值就可以。
回復(fù)

使用道具 舉報(bào)

9#
ID:844772 發(fā)表于 2022-6-24 15:19 | 只看該作者
祖國(guó)的花朵 發(fā)表于 2022-6-23 12:16
我理解你的意思,上面那段代碼無(wú)論是bx r0 還是bx lr其實(shí)不重要,lr的值已經(jīng)修改了,我是想寫(xiě)一個(gè)內(nèi)存管 ...

你是用第二種方法,用gcc編譯的吧?學(xué)到了,謝謝。 我覺(jué)得gcc的庫(kù)內(nèi)容多,沒(méi)有針對(duì)單片機(jī)優(yōu)化,反而支持這種方法了。
回復(fù)

使用道具 舉報(bào)

10#
ID:248705 發(fā)表于 2022-7-27 10:57 | 只看該作者
glinfei 發(fā)表于 2022-6-24 15:19
你是用第二種方法,用gcc編譯的吧?學(xué)到了,謝謝。 我覺(jué)得gcc的庫(kù)內(nèi)容多,沒(méi)有針對(duì)單片機(jī)優(yōu)化,反而支持 ...

確實(shí)如此,感覺(jué)gcc開(kāi)源的緣故各種花樣挺多,問(wèn)題也挺多,現(xiàn)在用的libc庫(kù)發(fā)現(xiàn)這東西malloc可以直接把內(nèi)存干穿- -,不像keil那樣可以設(shè)置堆棧尺寸
回復(fù)

使用道具 舉報(bào)

11#
ID:401564 發(fā)表于 2022-7-28 09:07 | 只看該作者
這都一個(gè)多月了,還在折騰這個(gè)?
我不太理解,為什么用STM32還相著嵌入?yún)R編,連8051匯編用的人都不多了
STM32不是這個(gè)庫(kù)就是那個(gè)庫(kù)的,只能說(shuō)各有缺點(diǎn),但做項(xiàng)目都是可以的
還走回頭路去想著看哪個(gè)寄存器什么的,如果不是有著極致的要求,那就是沒(méi)事找事
回復(fù)

使用道具 舉報(bào)

12#
ID:799053 發(fā)表于 2022-7-28 09:38 | 只看該作者
編譯器側(cè)重點(diǎn)不同,keil 有些設(shè)計(jì)很合理,設(shè)置很麻煩。
回復(fù)

使用道具 舉報(bào)

13#
ID:248705 發(fā)表于 2022-7-28 11:27 | 只看該作者
Y_G_G 發(fā)表于 2022-7-28 09:07
這都一個(gè)多月了,還在折騰這個(gè)?
我不太理解,為什么用STM32還相著嵌入?yún)R編,連8051匯編用的人都不多了
STM32 ...

也算是學(xué)習(xí)嘛,之前做公司的一個(gè)屎山項(xiàng)目,整個(gè)工程很大,動(dòng)態(tài)內(nèi)存用的非常多,不是這里泄露就是那里泄露,有的時(shí)候知道是泄露了,但是又找不到在哪,所以想著弄一個(gè)可以追蹤malloc調(diào)用的組件
回復(fù)

使用道具 舉報(bào)

14#
ID:401564 發(fā)表于 2022-7-28 17:47 | 只看該作者
祖國(guó)的花朵 發(fā)表于 2022-7-28 11:27
也算是學(xué)習(xí)嘛,之前做公司的一個(gè)屎山項(xiàng)目,整個(gè)工程很大,動(dòng)態(tài)內(nèi)存用的非常多,不是這里泄露就是那里泄露 ...

STM32內(nèi)存這方面我還沒(méi)有真正的去做過(guò),因?yàn)槲疑婕暗捻?xiàng)目對(duì)于STM32來(lái)說(shuō),資源簡(jiǎn)單不要太豐富,所以,也沒(méi)有真正的去實(shí)踐過(guò)
但我覺(jué)得不應(yīng)該是去走回頭路,STM那么龐大的硬件,我不認(rèn)為就單單看個(gè)LR寄存器就能解決問(wèn)題的
更應(yīng)該是C代碼的優(yōu)化
回復(fù)

使用道具 舉報(bào)

15#
ID:1040924 發(fā)表于 2022-7-29 13:24 | 只看該作者
現(xiàn)在都已經(jīng)這么高深了嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 天天草天天操 | 国产精品久久久久久福利一牛影视 | 欧美一区二区三区 | 网站一区二区三区 | 99精品网 | 欧美成人高清视频 | 欧美日韩免费在线 | 婷婷久久精品一区二区 | 黄免费观看视频 | 国产丝袜一区二区三区免费视频 | 欧美日日 | 亚洲网站观看 | 成人在线免费观看视频 | 午夜精品久久久久久久久久久久久 | 精品日韩 | 美女视频一区 | 一区不卡在线观看 | 干狠狠| 天天av综合| 欧美国产在线一区 | 中文字幕91av | 欧美精品一区二区在线观看 | 作爱视频免费看 | 国产精品一区二区免费 | 9久久婷婷国产综合精品性色 | 日日噜噜噜夜夜爽爽狠狠视频97 | 一区二区三区国产好 | 国产精品视频网 | 日韩中文字幕一区 | 日本激情视频中文字幕 | 成人亚洲 | 亚洲成人精品 | 999热精品| 日韩国产黄色片 | 日本黄色大片免费 | 在线视频国产一区 | 本道综合精品 | 99精品久久久久 | 亚洲 欧美 日韩 在线 | 久久久久av | 免费观看的黄色网址 |