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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

Keil環境中怎么替代#pragra

[復制鏈接]
跳轉到指定樓層
樓主
ID:272602 發表于 2019-9-9 18:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
88黑幣
本帖最后由 thinkingpadcui 于 2019-9-10 16:24 編輯


#pragma location="LCD_region"
char lcd_buffer[8][256];
#pragma location="BG_region"
long lcd_points[8*256*8]
這段代碼在IAR下能正常運行,移植到keil5上面就報warning;
keil環境下可以用什么代碼代替這四段代碼!在線等
gui\LCD\lcd.c(18): warning:  #161-D: unrecognized #pragma
這兩個數組應該是定義12864LCD RAM的
void drawPoint(short x, short y, char value)
{
        unsigned short location;

        assert( (x<132));assert((y<64));
        assert( x>=0); assert((y>=0));
        location= y&0x7;
        location +=(y>>3)<<11;
        location += (x<<3);
        lcd_points[location]=value;
}
void paintRect(short x0, short y0, short x1, short y1)
{
        char *pchar;
        char temp_x0;
        y0 =y0>>3;
        y1 =(y1+7)>>3;
        
        for(;y0<=y1;y0++)
        {
                 WriteCommand(0xb0 | (y0));
                WriteCommand(0x10 | (x0>>4));
                WriteCommand(0x0F & (x0));
                WriteCommand(0xE0);
               
                pchar = &lcd_buffer[y0][x0];
                temp_x0=x0;
                for(;temp_x0<=x1;temp_x0++){
                        WriteData(*pchar++);
                }
        }
}這個兩個數組只用在這兩個函數里面  然后這兩個函數被LCD底層驅動函數調用

下面是IAR .icf文件內容  在keil里面 應該怎么實現
#define symbol __ICFEDIT_region_RAM_LCD_start__ = 0x20004000;
#define symbol __ICFEDIT_region_RAM_LCD_end__   = 0x20004FFF;
#define symbol __ICFEDIT_region_RAM_BG_start__  = 0x22080000;
#define symbol __ICFEDIT_region_RAM_BG_end__    = 0x2208FFFF;


#define region LCD_region = mem:[from __ICFEDIT_region_RAM_LCD_start__   to __ICFEDIT_region_RAM_LCD_end__];
#define region BG_region = mem:[from __ICFEDIT_region_RAM_BG_start__   to __ICFEDIT_region_RAM_BG_end__];


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

使用道具 舉報

沙發
ID:235200 發表于 2019-9-9 22:17 | 只看該作者
去掉兩行,然后
char lcd_buffer[8][256];

long lcd_points[8*256*8];
這兩行根據自己的存儲器可定義為:
char xdata lcd_buffer[8][256];

long xdata lcd_points[8*256*8];
這樣編譯就不會出錯了
回復

使用道具 舉報

板凳
ID:272602 發表于 2019-9-10 12:18 | 只看該作者
csmyldl 發表于 2019-9-9 22:17
去掉兩行,然后
char lcd_buffer[8][256];

gui\LCD\lcd.c(18): warning:  #161-D: unrecognized #pragma
這兩個數組應該是定義12864LCD RAM的
void drawPoint(short x, short y, char value)
{
        unsigned short location;

        assert( (x<132));assert((y<64));
        assert( x>=0); assert((y>=0));
        location= y&0x7;
        location +=(y>>3)<<11;
        location += (x<<3);
        lcd_points[location]=value;
}
void paintRect(short x0, short y0, short x1, short y1)
{
        char *pchar;
        char temp_x0;
        y0 =y0>>3;
        y1 =(y1+7)>>3;
       
        for(;y0<=y1;y0++)
        {
                 WriteCommand(0xb0 | (y0));
                WriteCommand(0x10 | (x0>>4));
                WriteCommand(0x0F & (x0));
                WriteCommand(0xE0);
               
                pchar = &lcd_buffer[y0][x0];
                temp_x0=x0;
                for(;temp_x0<=x1;temp_x0++){
                        WriteData(*pchar++);
                }
        }
}這個兩個數組只用在這兩個函數里面  然后這兩個函數被LCD底層驅動函數調用
回復

使用道具 舉報

地板
ID:272602 發表于 2019-9-10 12:36 | 只看該作者
csmyldl 發表于 2019-9-9 22:17
去掉兩行,然后
char lcd_buffer[8][256];

謝謝!不太明白您的意思 我的問題加了補充了  麻煩看一下  謝謝
回復

使用道具 舉報

5#
ID:272602 發表于 2019-9-10 22:41 | 只看該作者
看了很多資料問題已解決,下面兩行代碼完美解決
char lcd_buffer[8][256]__attribute__((at(0x20004000)));

long lcd_points[8*256*8]__attribute__((at(0x22080000)));
回復

使用道具 舉報

6#
ID:272602 發表于 2019-9-10 22:42 | 只看該作者
查了很多資料,問題已解決。替換成下面兩行代碼。完美解決
char lcd_buffer[8][256]__attribute__((at(0x20004000)));

long lcd_points[8*256*8]__attribute__((at(0x22080000)));
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九九免费在线视频 | a在线视频观看 | 久久久久久国产精品免费免费狐狸 | 污书屋 | 大学生a级毛片免费视频 | 一区二区av在线 | 欧美日韩一 | 国产一二区免费视频 | 久久亚洲高清 | 九九亚洲 | 久久视频精品 | 在线中文字幕视频 | 亚洲国产aⅴ精品 | 美女午夜影院 | 在线视频国产一区 | 欧美亚洲一区二区三区 | 欧美精选一区二区 | 久久久久综合 | 久久国产精品亚洲 | 手机av在线| 国产精品毛片一区二区在线看 | 日韩黄色免费 | 国产成人精品一区二区三区 | 一区二区三区四区av | 国产成人久久精品 | 精品www | 日韩av在线一区 | 亚洲精品视频观看 | 亚洲不卡在线观看 | 日韩精品视频一区二区三区 | 久久国色 | 亚洲天堂二区 | 精品欧美乱码久久久久久 | 国产精品久久久久久久午夜片 | 日韩一级 | 日本精品国产 | 中文亚洲字幕 | 一级片免费观看 | 久久99这里只有精品 | 搞av.com| 久久成人免费 |