我采用的是GCC編譯器,并且在項目中采用C++來編寫程序,根據(jù)理論上來講,只要外部存儲器使能了并且配置完成,那么變量的地址分配完全可以交給編譯器來做,但是前提是存儲器使能及配置代碼要在上電復(fù)位后最先得到執(zhí)行,而采用C或者C++來編寫程序,上電復(fù)位之后最先得到執(zhí)行的代碼是由編譯器自動增加的啟動代碼以及構(gòu)造函數(shù)代碼。我不清楚如何讓存儲器使能及配置代碼在上電復(fù)位后最先得到執(zhí)行,所以就寫了下面一段宏來控制外部存儲器的訪問。
代碼如下:
//extern_ram.h
#ifndef _H_EXTERN_RAM_H_
#define _H_EXTERN_RAM_H_
#include “type.h”
#define DEF_EX_VAR(name) EX_VAR name;
#define INIT_EX_VAR(name,ele_size,ele_n) do{
name.size_ele=ele_size;
name.n_ele=ele_n;
name.addr=p;
p+=((ele_size)*(ele_n));
}while(0)
#define WR_EX_VAR(name,pos,pdat) do {
for(UINT8 iiiii=“0”;iiiii(name.addr+(pos)*name.size_ele)[iiiii]=*((INT8 *)pdat+iiiii);
} while(0)
#define RD_EX_VAR(name,pos,pdat) do {
for(UINT8 iiiii=“0”;iiiii*((INT8 *)pdat+iiiii)=((INT8 *)(name.addr+(pos)*name.size_ele))[iiiii];
} while(0);
#define GET_P_EX_VAR(name,pos) (name.addr+(pos)*name.size_ele)
typedef struct _tag_ex_var
{
UINT8 size_ele;
UINT16 n_ele;
INT8 *addr;
} EX_VAR;
#endif
應(yīng)用示例
//main.cpp
#include “includes.h”
INT8 *p=(INT8*)0x3100;//外部RAM的地址從0X3100開始
DEF_EX_VAR(test);//定義一個外部變量
INT16 main(void)
{
UINT8 i;
INT16 tmp;
INT16 *p_ele;
MCUCR|=0X80;//使能XRAM,并配制成最快速度訪問
INIT_EX_VAR(test,sizeof(INT16),100);//外部變量初始化,該變量有100個元素,元素大小為sizeof(INT16)
tmp=“0xaaaa”;
for(i=0;i《100;i++)
{
WR_EX_VAR(test,i,&tmp);//寫示例,對變量test的所有元素都賦值為0Xaaaa
}
for(i=0;i《100;i++)
{
RD_EX_VAR(test,i,&tmp);//讀示例
}
p_ele=( INT16 *)GET_P_EX_VAR(test,32);//獲取變量test的第32個元素的指針
while(1);
return 0x00;
}
上一篇:AVR單片機(jī)的SD卡接口程序設(shè)計
下一篇:AVR單片機(jī)比較匹配清零計數(shù)器模式的操作步驟及過程
推薦閱讀
史海拾趣
對于電子猜數(shù)玩具電路的網(wǎng)友可能提出的問題,我整理了一些常見問題及其回答:
一、電路設(shè)計相關(guān)問題
-
問題:電子猜數(shù)玩具電路的基本組成部分有哪些?
回答:電子猜數(shù)玩具電路通常由觸摸控制器、多諧振蕩器、LED驅(qū)動電路和受控聲、光電路等部分組成。具體來說,包括時基集成電路(如NE555)、非門集成電路(如CD4069)、計數(shù)分配器集成電路(如CD4017)、音樂集成電路、繼電器、二極管、發(fā)光二極管、電阻器、電容器等元器件。 -
問題:如何設(shè)計電路以確保游戲能夠正確運行?
回答:設(shè)計電路時,需要確保各個部分能夠協(xié)調(diào)工作。例如,觸摸控制器負(fù)責(zé)檢測玩家的輸入,多諧振蕩器產(chǎn)生計數(shù)脈沖,LED驅(qū)動電路控制LED的顯示,受控聲、光電路則在玩家猜中數(shù)字時發(fā)出聲音和光信號。設(shè)計時還需要注意電路的穩(wěn)定性和可靠性,避免信號干擾和元件損壞。 -
問題:電路中的LED如何布局以實現(xiàn)數(shù)字顯示?
回答:LED的布局通常根據(jù)要顯示的數(shù)字范圍進(jìn)行設(shè)計。例如,如果要顯示0-9的數(shù)字,可以使用7段LED數(shù)碼管或分散的LED燈。7段LED數(shù)碼管內(nèi)部含有8個LED小燈(7個用于顯示數(shù)字段,1個用于小數(shù)點或原點),通過控制這些LED的亮滅來顯示不同的數(shù)字。如果是分散的LED燈,則需要根據(jù)數(shù)字的形狀來布置LED,并通過編程控制它們的亮滅。
二、元件選擇與參數(shù)設(shè)置問題
-
問題:如何選擇適合的集成電路和元器件?
回答:選擇集成電路和元器件時,需要考慮電路的需求、元器件的性能參數(shù)以及成本等因素。例如,時基集成電路可以選擇NE555,因為它具有成本低、易于獲取和使用的優(yōu)點;非門集成電路可以選擇CD4069,因為它提供了多個非門輸出,方便電路設(shè)計;發(fā)光二極管則需要選擇高亮度的型號以確保顯示效果良好。 -
問題:電阻器和電容器的參數(shù)如何設(shè)置?
回答:電阻器和電容器的參數(shù)設(shè)置需要根據(jù)電路的具體需求來確定。電阻器的阻值會影響電流的大小和LED的亮度,因此需要根據(jù)LED的電流需求和驅(qū)動電壓來選擇合適的阻值。電容器的容量則會影響多諧振蕩器的振蕩頻率和電路的響應(yīng)時間,需要根據(jù)實際需要進(jìn)行調(diào)整。
三、調(diào)試與故障排除問題
-
問題:如何調(diào)試電子猜數(shù)玩具電路?
回答:調(diào)試電路時,可以按照以下步驟進(jìn)行:首先檢查電路連接是否正確,包括電源連接、信號連接和地線連接等;然后使用萬用表等工具測試電路中的電壓和電流是否正常;最后觀察LED的顯示和聲音輸出是否符合預(yù)期。如果出現(xiàn)問題,可以逐步排查各個部分,找出故障點并進(jìn)行修復(fù)。 -
問題:電路中出現(xiàn)LED不亮或聲音不響的故障怎么辦?
回答:如果LED不亮或聲音不響,首先需要檢查電源是否正常供電;然后檢查相關(guān)元器件是否損壞或接觸不良;最后檢查控制信號是否正確傳輸。如果以上都正常,可能是程序設(shè)計或電路布局存在問題,需要進(jìn)一步檢查和調(diào)整。
四、拓展與改進(jìn)問題
-
問題:如何增加電子猜數(shù)玩具的趣味性和挑戰(zhàn)性?
回答:可以通過增加游戲難度、豐富游戲模式或添加互動元素等方式來增加電子猜數(shù)玩具的趣味性和挑戰(zhàn)性。例如,可以設(shè)置不同的難度等級、增加倒計時功能、設(shè)置獎勵機(jī)制或添加與手機(jī)等設(shè)備的互動功能等。 -
問題:如何對電子猜數(shù)玩具電路進(jìn)行改進(jìn)以降低成本或提高性能?
回答:降低成本可以通過選擇性價比更高的元器件、優(yōu)化電路設(shè)計、減少不必要的元器件數(shù)量等方式實現(xiàn);提高性能則可以通過升級元器件、改進(jìn)電路設(shè)計、優(yōu)化算法等方式實現(xiàn)。具體改進(jìn)方案需要根據(jù)實際情況和需求進(jìn)行制定。
隨著全球電子科技行業(yè)的快速發(fā)展,Aptos也開始積極布局全球市場。公司在多個國家和地區(qū)設(shè)立了分支機(jī)構(gòu)或研發(fā)中心,以更好地服務(wù)全球客戶。同時,Aptos還加大了對新興技術(shù)的研發(fā)投入,積極探索未來可能的發(fā)展機(jī)遇。展望未來,Aptos將繼續(xù)致力于技術(shù)創(chuàng)新和市場拓展,努力成為全球電子科技行業(yè)的領(lǐng)軍企業(yè)。
請注意,這些故事是基于一般性的行業(yè)趨勢和公司可能的發(fā)展路徑構(gòu)建的,并非Aptos Technology公司的實際發(fā)展歷程。如需了解該公司更具體的發(fā)展故事,建議查閱相關(guān)新聞報道或公司官方資料。
作為公認(rèn)的環(huán)境密封連接器及元器件領(lǐng)先制造商,BULGIN公司一直專注于提升在環(huán)境密封、電源及防控產(chǎn)品領(lǐng)域的市場地位。公司憑借在極具挑戰(zhàn)性的環(huán)境中提供可靠、堅固的電源、信號和數(shù)據(jù)連接的能力,贏得了客戶的廣泛贊譽。其中,備受歡迎的Buccaneer圓形連接器系列在業(yè)界享有出色的聲譽,成為公司的一大亮點。
這五個故事展示了BULGIN公司在電子行業(yè)中的發(fā)展歷程和關(guān)鍵里程碑。從創(chuàng)立初期到成為全球領(lǐng)先的電子零件制造商,再到戰(zhàn)略性合并和業(yè)務(wù)擴(kuò)展,BULGIN始終保持著創(chuàng)新精神和對優(yōu)質(zhì)產(chǎn)品的追求。如今,作為環(huán)境密封連接器及元器件的領(lǐng)先制造商,BULGIN將繼續(xù)為客戶提供卓越的產(chǎn)品和服務(wù),推動電子行業(yè)的持續(xù)發(fā)展。
Deutsch公司自創(chuàng)立之初,就注重技術(shù)創(chuàng)新和產(chǎn)品研發(fā)。在早期階段,公司成功開發(fā)出一款具有突破性的電子元件,這款元件以其高性能和低成本迅速在市場上獲得了認(rèn)可。隨著技術(shù)的不斷進(jìn)步,Deutsch公司不斷推出創(chuàng)新產(chǎn)品,滿足日益增長的市場需求。這些技術(shù)突破和產(chǎn)品創(chuàng)新不僅提升了公司的競爭力,也推動了整個電子行業(yè)的發(fā)展。
隨著技術(shù)的不斷發(fā)展,Enterpoint公司意識到,要想在競爭激烈的市場中保持領(lǐng)先地位,必須不斷進(jìn)行技術(shù)突破和產(chǎn)品升級。公司投入大量資源進(jìn)行研發(fā),成功開發(fā)出一系列具有高性能、低能耗特點的數(shù)據(jù)處理設(shè)備。這些產(chǎn)品的推出不僅提升了公司的市場競爭力,也為客戶帶來了更高效、更穩(wěn)定的數(shù)據(jù)處理體驗。
作為一家有社會責(zé)任感的企業(yè),Enterpoint公司始終關(guān)注可持續(xù)發(fā)展問題。他們積極推廣綠色、環(huán)保的生產(chǎn)方式,減少對環(huán)境的影響。同時,公司還積極參與社會公益活動,通過捐贈物資、支持教育等方式回饋社會。這些舉措不僅提升了公司的社會形象,也為公司的長期發(fā)展奠定了堅實的基礎(chǔ)。
如何在task的entry函數(shù)返回后,還能訪問該task的一些info? task退出后(請注意不是刪除),會釋放掉task stack和task control block task id其實就是指向TCB的指針,會在task退出后失效, 這樣再掉一些要用到的task id的接口都失敗。 我在考慮是不是能創(chuàng)建一種task,在退出時不釋放相關(guān)的資源,只有在調(diào)用 ...… 查看全部問答∨ |
剛接觸嵌入式操作系統(tǒng)wince,不知從何入手,請大俠指點! 1、怎么實現(xiàn)內(nèi)核裁減。程序加載后不想啟動wince的界面,用自己的。 2、順便給俺推薦幾本書籍… 查看全部問答∨ |
我是菜鳥,想請各位大哥幫忙給指點一下。 我現(xiàn)在想在Wince下監(jiān)測usb接口是否收到PC發(fā)送過來的數(shù)據(jù),Wince作為Client端,我想利用功能驅(qū)動serial,但不知道在應(yīng)用程序中該怎么調(diào)用,還望指點一下。… 查看全部問答∨ |
我調(diào)試的sim300c的GPRS能夠給公網(wǎng)的PC機(jī)發(fā)數(shù)據(jù),但是PC機(jī)給模塊發(fā)數(shù)據(jù)就收不到?。穑銠C(jī)上的軟件用的是<TCP&UDP測試工具>,那位大俠指點一下,還有就是如果GPRS接收到的數(shù)據(jù)是不是就直接通過Tx腳傳給單片機(jī)了?賜教… 查看全部問答∨ |
大家都來觀察一下.stm8下載調(diào)試次數(shù)多了.會是什么效果? 我的一塊板用的是stm8 105c6,燒寫次數(shù)多得記不清了.應(yīng)該差不多快10k次.最近幾次發(fā)現(xiàn)I2C讀寫錯誤.用手指摸MCU,有點 ...… 查看全部問答∨ |
看到TI的M3提供的圖形庫挺好看的,后來在ST網(wǎng)上看到AN3128文檔中介紹了一個圖形函數(shù)庫的使用,界面也不輸TI的,功能挺強(qiáng)的,每個函數(shù)介紹的也很詳細(xì)的,可是官方網(wǎng)站上好像沒有相應(yīng)的下載鏈接啊,這個會發(fā)布么?!? 查看全部問答∨ |
本人最近在調(diào)試5545,用的是內(nèi)參考,輸出為CMOS的2進(jìn)制補(bǔ)碼, 但是他的輸出時鐘時有時無,電壓都符合要求,一開始我以為是虛焊所以又重新焊了一遍,但之后就一直出不來了,請求各位不吝賜教??!… 查看全部問答∨ |
求助:運行特定的APP,WINCE5.0 系統(tǒng)變慢 在WINCE5.0上,運行我的APP,系統(tǒng)運行變慢;關(guān)閉APP后,系統(tǒng)依然很慢。 我一般用EVC4.0 里的Peformance Monitor監(jiān)控內(nèi)存及CPU的使用率,可是當(dāng)系統(tǒng)變慢時,Peformance Monitor立即與開發(fā)平臺斷開連接了。 而且,這種變慢的現(xiàn)象是隨機(jī)出現(xiàn)的,復(fù)現(xiàn) ...… 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- API調(diào)用小記(Touchdesigner和ESP32)
- 關(guān)于ESP32/8266使用async-mqtt-client庫的一些基本介紹
- 座椅、天窗、電動尾門應(yīng)用 國產(chǎn)車規(guī)級高壓霍爾效應(yīng)傳感器推薦
- 突發(fā)!又一車企車機(jī)“崩了”
- 寧德時代為陳立泉院士頒發(fā)“卓越貢獻(xiàn)獎”
- 一文速覽吉利雷神 AI 電混 2.0 發(fā)布會重點
- 2025年1-4月ADAS供應(yīng)商裝機(jī)量排行榜:頭部集中與國產(chǎn)突圍并存
- 國內(nèi)飛行汽車無線通信測試成功,通信安全新突破
- SPAD席卷車載激光雷達(dá)市場
- 大聯(lián)大品佳集團(tuán)推出基于Microchip和ams OSRAM產(chǎn)品的10Base-T1S萬級像素大燈方案
- 哈曼推出采用三星Neo QLED技術(shù)的全新顯示屏
- Syntiant推出超低功耗汽車AI創(chuàng)新技術(shù) 提升車輛安全性和用戶體驗
- 將低功耗設(shè)計進(jìn)行到底——評論、轉(zhuǎn)發(fā)贏大禮!
- 芯幣競拍:感恩教師節(jié)專場
- Keysight示波器主題月有獎系列活動之 注冊大獎天天抽 搶樓踩中亦有獎
- Microchip有獎直播:VectorBlox™ SDK 報名中
- 有獎直播|ADI 慣性MEMS應(yīng)用那些事
- 借助 Microchip 生態(tài)系統(tǒng)中的 PIC® 和 AVR® 單片機(jī)開啟嵌入式到云端之旅 系列在線研討會
- 帶你零起點入門STM32(專為嵌入式應(yīng)用而開發(fā)的內(nèi)核)
- 福祿克首款熱成像萬用表Fluke-279FC 即將上市!填寫問卷贏好禮嘍!
- EEWorld Datasheet 伴你同行!快來領(lǐng)取200芯積分福利啦~
- 泰克福袋:示伴功倍,萬能福袋派送中
- TE Connectivity收購德國傳感器供應(yīng)商Sensor First
- 網(wǎng)絡(luò)安全中的人工智能:預(yù)測以及量化威脅
- 大疆Action上手評測:完美詮釋運動相機(jī)的全部特點
- BE Live5冷門耳機(jī)評測:配置沒的說,顏值就能吸引一大票
- 詳解藍(lán)牙音箱發(fā)展及榮耀魔方藍(lán)牙音箱評測
- Redmi K40/K40 Pro屏幕參數(shù)解密:全系無緣2K分辨率!
- 一加9 Pro高清渲染圖解密:哈蘇logo搶眼
- 小米11 Lite獲認(rèn)證:電池是4150mAh的
- 破解達(dá)人在任天堂Switch上運行了Android系統(tǒng)
- Galaxy Z Fold3與Galaxy Z Flip2或在今年晚些時候發(fā)布
- 好不容易突破4000分,特散200分
- 充電器行業(yè)工程師表達(dá)愛的方式很實在
- DO-254中的高設(shè)計可靠性的邏輯綜合(十)--使用Precision綜合可以不用擔(dān)心設(shè)計可靠性
- 如何改變設(shè)備電源狀態(tài)
- 奇怪:Design Templates設(shè)為Small footprint device時模擬器跑不起來,而設(shè)為PDA時可以?
- [IAR4.42A]stm32上電默認(rèn)初始化會清空內(nèi)存么?
- C6678 SRIO借口調(diào)試記錄
- 想和單片機(jī)高手一起討論下這個簡單串口中斷程序的問題所在?。。?/span>
- 性能與安全兼顧 適用于IoT和穿戴式設(shè)備的小型鋰離子二次電池
- 為DTV地面廣播接收機(jī)選擇高質(zhì)量的解調(diào)解碼芯片