|
發布時間: 2022-8-13 10:36
正文摘要:我想達到的效果時,常量定義下flash里面,然后可以像變量一樣讀取。 和下圖一樣: 這就導致需要寫2個函數,一個是變量指針的函數,一個常量指針的函數,keil C51 可以2個函數通用。而IAR for AVR下不行。 ... |
|
我記得AVR是統一編址的啊,應該是AVR可以,51不行。 怎么到你這里就顛倒過來了呢? |
| 常量讀取與變量讀取一般不同,51也是不同的。 |
|
問題在于"123",不在于什么結構 IAR和Keil對于"123"這個字符串的定義不一樣 IAR沒有用過,不知道,在Keil中,"123"是被分成"1""2""3"三個ASCII碼的 而且,Keil也可以識別"回家"這種中文的字符串,在別的環境,有的是不行 但如果是C語言,那就是一樣的,沒有什么指令結構這一說的 |
| 查找資料,有人說AVR是哈佛結構,他的FLASH空間和SRAM空間是重疊的,所以2個函數不能通用,要區分開來,之前以為是我寫法不對,研究了好久,網上的資料大部分是教你如何定義常量到flash,沒有說如何讀取常量。反正我沒辦法了,只能寫2個函數區別,比如打印函數,寫2個,一個可以打印變量的數據,一個打印常量的數據,有沒有大神可以解決這個問題的,讓它變的通用。類似keil_C51 , PIC一樣通用 |