欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1930|回復: 4
打印 上一主題 下一主題
收起左側

IAR for AVR下變量和常量可以像Keil C51一樣使用嗎?

[復制鏈接]
跳轉到指定樓層
樓主
ID:78835 發(fā)表于 2022-8-13 10:36 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
我想達到的效果時,常量定義下flash里面,然后可以像變量一樣讀取。
和下圖一樣:


然而我移植到AVR里面,卻不行。
下圖是AVR的測試:


后面發(fā)現(xiàn)改變Uart_COM1_WR_NByte_F(uint16_t Len,uint8_t const __flash * Array)這個函數(shù)的指針類型,也可以操作常量。
如下圖:


這就導致需要寫2個函數(shù),一個是變量指針的函數(shù),一個常量指針的函數(shù),keil C51 可以2個函數(shù)通用。而IAR for AVR下不行。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:78835 發(fā)表于 2022-8-13 10:49 | 只看該作者
查找資料,有人說AVR是哈佛結構,他的FLASH空間和SRAM空間是重疊的,所以2個函數(shù)不能通用,要區(qū)分開來,之前以為是我寫法不對,研究了好久,網(wǎng)上的資料大部分是教你如何定義常量到flash,沒有說如何讀取常量。反正我沒辦法了,只能寫2個函數(shù)區(qū)別,比如打印函數(shù),寫2個,一個可以打印變量的數(shù)據(jù),一個打印常量的數(shù)據(jù),有沒有大神可以解決這個問題的,讓它變的通用。類似keil_C51 , PIC一樣通用
回復

使用道具 舉報

板凳
ID:401564 發(fā)表于 2022-8-13 13:32 | 只看該作者
問題在于"123",不在于什么結構
IAR和Keil對于"123"這個字符串的定義不一樣
IAR沒有用過,不知道,在Keil中,"123"是被分成"1""2""3"三個ASCII碼的
而且,Keil也可以識別"回家"這種中文的字符串,在別的環(huán)境,有的是不行
但如果是C語言,那就是一樣的,沒有什么指令結構這一說的
回復

使用道具 舉報

地板
ID:1034262 發(fā)表于 2022-8-13 14:44 | 只看該作者
常量讀取與變量讀取一般不同,51也是不同的。
回復

使用道具 舉報

5#
ID:883242 發(fā)表于 2022-8-13 21:09 | 只看該作者
我記得AVR是統(tǒng)一編址的啊,應該是AVR可以,51不行。

怎么到你這里就顛倒過來了呢?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

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

快速回復 返回頂部 返回列表