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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3693|回復: 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__];


回復

使用道具 舉報

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];

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

使用道具 舉報

ID:272602 發表于 2019-9-10 22:41 | 顯示全部樓層
看了很多資料問題已解決,下面兩行代碼完美解決
char lcd_buffer[8][256]__attribute__((at(0x20004000)));

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

使用道具 舉報

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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 麻豆国产一区二区三区四区 | 国产精品毛片无码 | 国产一区二区三区不卡av | a级片在线观看 | 色婷婷综合久久久中字幕精品久久 | 日韩一二区 | 在线观看中文字幕 | 欧美精品在线播放 | 日韩中文在线视频 | 亚洲欧美综合 | 国产一区二区电影 | yiren22 亚洲综合 | 热re99久久精品国99热观看 | 伊人网在线综合 | 国产精品看片 | 国产精品自拍视频 | 久草成人| 国内自拍偷拍 | 中文字幕日韩一区 | 日韩国产欧美一区 | 久久精品91久久久久久再现 | 91精品入口蜜桃 | 久久亚洲精品国产精品紫薇 | 成人不卡 | av中文天堂 | 久草网站| 欧美日韩在线观看一区 | 亚洲视频在线观看免费 | 亚洲欧美日韩国产综合 | 国产成年人视频 | 成人黄色电影免费 | 三级免费av | 国产视频欧美 | 欧美综合久久 | 色资源站| 求个av网址| 天天操天天射天天舔 | 91精品国产综合久久久密闭 | 欧美一区二区三区国产精品 | 999精品视频 | 蜜桃av人人夜夜澡人人爽 |