[問題] 編譯不過
有數年沒寫程式了,最近要改一支別人寫的程式,遇到一些問題,不知可否解?
上層API有
API123();
API456();
API789();
API是其他sw廠商提供的,不能修改,也不會有修改的意願
全部的API都會在底層一直呼叫 SPI_READ()
SPI_READ()是我們自己寫的,可以修改
因為API是純SW的寫法,會去SPI取固定位置、固定長度的資料,拿去做運算
造成API789()執行時間超級長,大概10秒
因為我已經知道他要的SPI資料的位置和長度,
我是想把資料先預讀搬到RAM中,
然後在SPI_READ()判斷,
if(位置對 && 長度對), 去RAM搬資料,不實際執行底層SPI的運作 (偷時間)
要預存的RAM大小~1KB,
對斤斤計較的MCU來說,RAM最好只在需要的時間再開起來
所以RAM只希望在API789()前開起來,API789()結束後close和free掉
現在的問題在我在SPI_READ()中,寫了if的判斷式
但是可能在執行API123()時,
寫的if判斷式中,RAM的變數或變數指標,在那個時間點並不存在
造成編譯一直不過
總結:
我只希望在API789()前後,才讓RAM有預讀的資料
讓API789()裏頭呼叫SPI_READ()時,if成立,才去拿預讀資料
其他API123(), API234()執行呼叫SPI_READ()時,我不care
有點想不出如何解,希望各位指點一下,感謝.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.32.240.169
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1515845741.A.6B2.html
→
01/13 20:26,
8年前
, 1F
01/13 20:26, 1F
→
01/13 21:11,
8年前
, 2F
01/13 21:11, 2F
推
01/14 00:34,
8年前
, 3F
01/14 00:34, 3F
→
01/14 09:09,
8年前
, 4F
01/14 09:09, 4F
→
01/14 09:11,
8年前
, 5F
01/14 09:11, 5F
→
01/14 09:11,
8年前
, 6F
01/14 09:11, 6F
→
01/14 13:17,
8年前
, 7F
01/14 13:17, 7F
→
01/14 13:17,
8年前
, 8F
01/14 13:17, 8F
→
01/14 13:19,
8年前
, 9F
01/14 13:19, 9F
推
01/14 22:44,
8年前
, 10F
01/14 22:44, 10F
→
01/14 22:46,
8年前
, 11F
01/14 22:46, 11F
→
01/14 22:47,
8年前
, 12F
01/14 22:47, 12F
→
01/15 18:31,
8年前
, 13F
01/15 18:31, 13F
→
01/15 22:52,
8年前
, 14F
01/15 22:52, 14F
→
01/16 10:00,
8年前
, 15F
01/16 10:00, 15F
推
01/29 21:36,
7年前
, 16F
01/29 21:36, 16F
→
01/29 21:36,
7年前
, 17F
01/29 21:36, 17F
→
01/29 21:36,
7年前
, 18F
01/29 21:36, 18F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
問題
3
18