精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在DS80C400應(yīng)用中使用SDCC編譯器

星星科技指導(dǎo)員 ? 來源:ADI ? 作者:ADI ? 2023-06-16 17:32 ? 次閱讀

介紹

DS80C400包含一個提供網(wǎng)絡(luò)棧、內(nèi)存管理和進程調(diào)度的ROM,可以靈活地用于由Java、C和8051匯編編程的應(yīng)用中。SDCC為8051器件提供了一個免費、開放源碼的編譯器,并兼容DS80C400的24位尋址模式。用C編寫的復(fù)雜應(yīng)用程序在Dallas Semiconductor提供的庫的幫助下,可以很容易地使用DS80C400 ROM功能創(chuàng)建。

本應(yīng)用筆記闡述了如何使用SDCC工具來創(chuàng)建DS80C400應(yīng)用程序。從一個HelloWorld應(yīng)用程序開始,然后說明如何使用ROM庫來實現(xiàn)一個簡單的HTTP服務(wù)器。這里的應(yīng)用程序是針對TINIm400參考模塊編寫和創(chuàng)建的,用于具有其它存儲器配置的設(shè)計時必須進行相應(yīng)修改。

從SDCC編譯器開始

遵循以下步驟,使用SDCC編譯器來完成您的第一個DS80C400的C應(yīng)用程序:

  1. 安裝SDCC編譯器1

    • 從SDCC網(wǎng)站上下載最新版本SDCC編譯器的安裝文件。
    • 遵循安裝文件的指示(可能是sdcc/doc/INSTALL.txt)。
  2. 使用你喜歡的文本編輯器創(chuàng)建一個新文件"main.c"。在文件中寫入以下代碼:

    #include < stdio.h >
    void main ()
    {
    	printf("Hello Universe!!!!....Welcome to SDCC Tini Test Program");
    
    			while (1)
    			{
    }
    		}
    

    一定要保存文件內(nèi)容。

  3. 從SDCC C庫站點2中拷貝文件startup400.a51和reg400.inc (包含在啟動代碼下載中),并保存到您保存main.c文件的目錄中。此文件包含startup_code函數(shù),將在應(yīng)用程序啟動時調(diào)用該函數(shù),從而對DS80C400芯片進行初始化。啟動代碼完成以下工作:

    • 將DS80C400配置成24位連續(xù)地址模式
    • 配置定時器2用來為串口產(chǎn)生115200的波特率
    • 初始化數(shù)據(jù)存儲器
  4. 從SDCC C庫站點拷貝ROM initialization庫文件(從init庫文件下載的rominit.lib和rom400.h),并將其解壓縮至相同目錄下。庫文件是壓縮的,使用WinZip或gunzip/tar解壓縮包。

  5. 在編譯我們的"Hello Universe"應(yīng)用程序之前,我們需要在一個SDCC安裝的支持文件中作一個小改動,覆蓋缺省的DS80C400支持函數(shù)并使用Dallas Semiconductor的C庫代替。進行以下改動:

    • 將\\SDCC\\lib\\ds400\\libds400.lib文件重命名為\\SDCC\\lib\\ds400\\libds400.lib.old
    • 建立一個名為\\SDCC\\lib\\ds400\\libds400.lib的空文件(使用touch命令或在您喜歡的文本編輯器中建立一個新文件)
  6. 構(gòu)建"Hello Universe"應(yīng)用程序...

    • 要由我們的startup400.a51文件創(chuàng)建一個目標(biāo)文件(.rel),在命令行執(zhí)行以下命令:

      asx8051 -losffgp startup400.a51
      

      asx8051是SDCC工具提供的匯編器。匯編器提供的參數(shù)選項有:| Option | Purpose |

      | -------- | ----------------------------------------------------- |

      | l | generates a list file |

      | o | generates an object file |

      | s | generates a symbol file |

      | ff | flag reolcatable references by mode in listing file |

      | g | make undefined symbols be global |

      | p | disables listing pagination |

      "los"參數(shù)是必須的,因為連接器需要列表、目標(biāo)和符號文件來生成可執(zhí)行文件。"ff"和"p"參數(shù)生成一個可讀的列表文件。"g"參數(shù)通知匯編器在發(fā)現(xiàn)一個沒有定義的符號且該符號未聲明為外部變量時不報錯。

    • 為了由main.c生成一個目標(biāo)文件,執(zhí)行以下命令:

      sdcc -c -mds400 --model-flat24 --stack-10bit --no-xinit-opt main.c
      

      sdcc為編譯器。

      傳遞給編譯器的參數(shù)選項為:

      Option Purpose
      -c compiles main.c and creates an object file
      -mds400 generates code for the DS80C400 processor
      --model-flat24 use the 24-bit contiguous memory model
      --stack-10bit use the 1024-byte extended stack (10 bit stack addresses)
      --no-xinit-opt don't initialize the external RAM memory area
      p disables listing pagination

      注意列表中最后三個參數(shù)是雙破折號。

    • 為了連接目標(biāo)文件并構(gòu)建可執(zhí)行文件,執(zhí)行以下命令:

      sdcc -mds400 --model-flat24 --stack-10bit -Wl-r --xram-loc
      0x10000 --xram-size 0x3fff --code-loc 0x400000 main.rel startup400.rel -l
      rominit.lib
      

      這里使用的新參數(shù)為:| Option | Purpose |

      | ------------- | -------------------------------------------------------------- |

      | -WI | pass options through to the linker |

      | --xram-loc | external RAM start address (only RAM for SDCC variable use!) |

      | --xram-size | external RAM size (only RAM for SDCC variable use!) |

      | --code-loc | code starting address |

      | -l | include the specified libraries |

      | p | disables listing pagination |

      請注意xram-loc、 xram-size和code-loc參數(shù)為雙破折號。也要注意給命令指定的RAM將會用來存儲SDCC變量,不應(yīng)該和init_rom函數(shù)中用來初始化DS80C400所使用的存儲器范圍沖突―此存儲器用作網(wǎng)絡(luò)棧和存儲器管理。

    • 為了壓縮可執(zhí)行文件并生成一個十六進制文件,執(zhí)行以下命令:

      packihx main.ihx>hellouniverse.hex

      packihx命令通過將連續(xù)數(shù)據(jù)記錄累積至16個字節(jié)來壓縮可執(zhí)行文件。

有了一個可執(zhí)行文件后,我們需要將應(yīng)用程序下載到TINIm400模塊中并運行它。### 將示例應(yīng)用程序加載到TINIm400模塊

本節(jié)說明如何使用Maxim/Dallas Semiconductor提供的 微控制器工具包(MTK) 向TINIm400驗證模塊中加載由SDCC編譯器生成的十六進制文件。目前可用的MTK版本只支持Windows?。

如果您的開發(fā)環(huán)境不是Windows,需要使用JavaKit應(yīng)用程序來下載和執(zhí)行應(yīng)用程序。要使用JavaKit,您必須有Java運行環(huán)境3 (版本至少為1.2)并且安裝Java Communications API ^4^ 。JavaKit工具包含在TINI軟件開發(fā)包中。寫本文的時候,發(fā)布的最新固件是固件版本1.13。運行JavaKit的指導(dǎo)說明可以在TINI SDK docs目錄下的Running_JavaKit.txt文件中找到。如果您在運行MTK或JavaKit時遇到技術(shù)問題,可能其他人已經(jīng)遇到過類似問題并且已經(jīng)發(fā)表在Dallas Semiconductor的討論區(qū)中。

最新版本的MTK應(yīng)用軟件可下載。要安裝MTK,請運行安裝文件并遵照提示操作。成功安裝后,會增加一個新的菜單項: Start->All Programs->Dallas Semiconductor MTK。 MTK啟動后,會出現(xiàn)圖1所示的對話框。

圖1. 啟動時MTK選項

圖1. 啟動時MTK選項

選擇選項TINI,以操作TINIm400評估板。

選擇了TINI之后,會打開MTK主窗口。從Options->Configure Serial Port菜單選項中選擇您將用來和TINIm400通訊的串口。然后,選擇Tini->Tini Options菜單項,就會出現(xiàn)下面的對話框。選擇DSTINIm400按鈕,配置MTK用于和TINIm400板通訊。圖2顯示了帶有DSTINIm400按鈕的對話框。

圖2. 選擇TINIm400配置選項

圖2. 選擇TINIm400配置選項

選擇Tini->Open COMx at xxx baud菜單選項打開串口。接著選擇Tini->Reset選項復(fù)位評估板。會出現(xiàn)DS80C400的加載提示:

DS80C400 Silicon Software - Copyright (C) 2002 Maxim Integrated
Detailed product information available at http://www.maximintegrated.com

Welcome to the TINI DS80C400 Auto Boot Loader 1.0.1
>

從文件菜單中選擇Load HEX File。找到我們剛剛生成的hellouniverse.hex文件并選中。一旦您的程序加載后有兩種方法運行它。因為我們將程序加載到40區(qū),您可以輸入:

> B40 
 > X

要選擇40區(qū)并運行那里的代碼。您也可以輸入:

> E

這會使ROM查找可執(zhí)行的代碼。它查找一個標(biāo)識當(dāng)前區(qū)具有可執(zhí)行代碼的特定標(biāo)簽。此標(biāo)簽由文本'TINI'組成,其后面緊跟著當(dāng)前區(qū)的號碼(或零),并位于當(dāng)前區(qū)的0002h地址。SDCC編譯器在生成的匯編代碼中插入此標(biāo)簽。如果打開為hellouniverse工程生成的main.asm源代碼,您會找到下面的代碼段:

.area CSEG    (CODE)
interrupt_vect:
   ; DS80C400 IVT must be generated at runtime.
	sjmp	__sdcc_400boot
	.ascii	'TINI'	; required signature for 400 boot loader.
	.db	0	; selected bank or zero...
__sdcc_400boot:
	ljmp	__sdcc_gsinit_startup

注意sjmp__sdcc_400boot語句位于40區(qū)的0000h地址。其后跟隨可執(zhí)行標(biāo)簽{ 'T', 'I', 'N', 'I', 0h},由于simp語句為兩個字節(jié),因此該標(biāo)簽位于地址0002處。當(dāng)您鍵入'E'時,ROM從C0h區(qū)開始向下搜索可執(zhí)行代碼。如果您鍵入'E'時,執(zhí)行了其它的代碼,則意味著ROM在一個比您的代碼加載位置400000h更高的地址找到了一個可執(zhí)行標(biāo)簽。您可能需要找到此標(biāo)簽的位置,并刪除那個區(qū)的內(nèi)容。### 和ROM以及SDCC ROM庫接口

在高速微控制器用戶指南DS80C400補充資料中說明了在匯編語言中調(diào)用ROM函數(shù)的過程。但是,在C中調(diào)用這些ROM函數(shù)會復(fù)雜一些。必須將參數(shù)從SDCC C編譯器的規(guī)則轉(zhuǎn)換成ROM使用的規(guī)則。SDCC編譯器通過硬件堆棧、累加器和數(shù)據(jù)指針相結(jié)合的方式來傳遞參數(shù)。ROM函數(shù)采用許多不同的方式來接受參數(shù)。例如,socket函數(shù)接收存儲在一個外部RAM緩沖區(qū)中的參數(shù)。相反地,許多功能函數(shù)接收由特殊功能寄存器或直接存儲器位置傳遞的參數(shù)。為了從SDCC調(diào)用方式轉(zhuǎn)換成ROM參數(shù)方式,Dallas Semiconductor已經(jīng)編寫了訪問ROM函數(shù)的庫。

在您的C程序中使用ROM函數(shù)只需包含一個頭文件并與相應(yīng)的庫文件連接即可。用于SDCC編譯器的ROM庫包括:

  • ROM初始化程序
  • DHCP客戶端
  • 進程調(diào)度
  • Sockets (TCP、UDP和Multicast)
  • TFTP客戶端
  • 功能函數(shù)(CRC16, 隨機數(shù))

在寫本文時,還沒有為SDCC編譯器提供包括如文件系統(tǒng)、郵件客戶端和HTTP服務(wù)器之類的擴展庫。請關(guān)注SDCC庫主頁上的DS80C400升級信息,我們會添加支持SDCC的庫。### 簡單應(yīng)用:HTTP服務(wù)器

編寫了一個簡單的http服務(wù)器來說明如何使用一些ROM庫函數(shù),特別是socket和進程調(diào)度庫。這個示例會偶爾通過網(wǎng)絡(luò)時間服務(wù)器更新它的時間,并且通過它的web服務(wù)器提供這個信息。

示例應(yīng)用程序由兩個模塊組成,一個HTTP服務(wù)器和SNTP客戶端。主程序生成一個新的子任務(wù)來運行http服務(wù)器,用于處理80端口上的客戶連接。父任務(wù)每60秒會試圖通過時間服務(wù)器同步當(dāng)前時間。

SNTP客戶端模塊

以下代碼段實現(xiàn)SNTP客戶端模塊的核心功能。

socket_handle = socket(0, SOCKET_TYPE_DATAGRAM, 0);

// set a timeout of about 2 seconds
for (i=0;i< 256;i++)
    buffer[i] = 0;
buffer[0] = 0x0;
buffer[1] = 0x0;
buffer[2] = 0x8;
buffer[3] = 0x0;
setsockopt(socket_handle, 0, SO_TIMEOUT, buffer, 200);

buffer[2] = 0;       //reset since we used this in call to setsockopt
buffer[0] = 0x23;    // No warning/NTP Ver 4/Client

address.sin_addr[12] = TIME_NIST_GOV_IP_MSB;
address.sin_addr[13] = TIME_NIST_GOV_IP_2;
address.sin_addr[14] = TIME_NIST_GOV_IP_3;
address.sin_addr[15] = TIME_NIST_GOV_IP_LSB;
address.sin_port_high = (NTP_PORT/0x100); //higher byte of port number
address.sin_port_low = (NTP_PORT%0x100); //lower byte of port number

sendto(socket_handle, buffer, 48, 0, &address, sizeof(struct sockaddr));
recvfrom(socket_handle, buffer, 256, 0, &address, sizeof(struct sockaddr));

//SDCC uses little Endian for storing data, so reorganize the data before converting it to long
buffer[0]=buffer[43];
buffer[1]=buffer[42];
buffer[2]=buffer[41];
buffer[3]=buffer[40];

timeStamp = *(unsigned long *)(&buffer[0]);

formatTimeString(timestamp - (5 * SECONDS_PER_HOUR), "Tampa, USA",
                 last_time_reading_1);
formatTimeString(timeStamp - (3 * SECONDS_PER_HOUR), "Sao Paulo, Brazil",
                 last_time_reading_2);
formatTimeString(timeStamp + (1 * SECONDS_PER_HOUR),"Marseille, France",
                 last_time_reading_3);
formatTimeString(timeStamp + (5 * SECONDS_PER_HOUR) + (30 *
                 SECONDS_PER_MINUTE), "Bangalore, India",
                 last_time_reading_4);
formatTimeString(timeStamp +  (8 * SECONDS_PER_HOUR), "Hsinchu, Taiwan",
                 last_time_reading_5);
last_reading_seconds = getTimeSeconds();
closesocket(socket_handle);

SNTP客戶端模塊同樣是通過RFC 1361實現(xiàn)的。SNTP模塊通過使用UDP協(xié)議和time.nist.gov通訊,并請求一個時間戳。需注意編寫這個應(yīng)用筆記時還不提供SDCC編譯器的DNS支持,因此time.nist.gov的IP地址是手工設(shè)定的。

首先,創(chuàng)建一個數(shù)據(jù)包socket并分配一個大約2秒(0x800==2048 milliseconds)的超時。這樣會保證如果和我們選擇的服務(wù)器通訊失敗,我們不會無休止地等待響應(yīng)。

接下來的一行用來設(shè)置請求的參數(shù)。在RFC 1361的第3節(jié)對這些位進行了說明。值0x23在一個跳秒時不要求產(chǎn)生警告,要求使用版本4的NTP,并聲明模式為"Client"。我們使用普通數(shù)據(jù)包函數(shù)sendto和recvfrom發(fā)送請求和接收響應(yīng)之后,將時間戳數(shù)值的秒部分賦予變量timeStamp,然后調(diào)整至參考日期1970年1月1日。用函數(shù)formatTimeString將時間戳轉(zhuǎn)換成一個可讀的字符串,比如說"In Marseille, France it is 9:37:37 on September 3, 2000。"

用getTimeSeconds函數(shù)來確定基于DS80C400內(nèi)部時鐘的最后一次更新的時間。由于程序只是大約每60秒更新一次,HTML網(wǎng)頁time.html將會使用這一數(shù)值來報告上一次時間更新后已經(jīng)過了多長時間。最后,socket關(guān)閉并且SNTP客戶端進入另一個60秒的休眠期。

簡易的HTTP服務(wù)器

這個時間服務(wù)器應(yīng)用程序的另一個子模塊為一個web服務(wù)器。此應(yīng)用程序中的服務(wù)器實現(xiàn)了一個RFC 2068中描述的HTTP服務(wù)器簡易版本。只支持"GET"方法--忽略輸入包頭,并且?guī)缀醪唤o出輸出包頭。當(dāng)編寫這個應(yīng)用筆記時尚未提供文件系統(tǒng)庫,因此示例應(yīng)用程序動態(tài)地生成HTML頁面。

通過調(diào)用Berkley-style socket函數(shù)來創(chuàng)建服務(wù)器soket。這使得建立一個服務(wù)器socket十分容易。下面的代碼給出了我們的簡易HTTP服務(wù)器如何創(chuàng)建、綁定和接收新的連接。

struct sockaddr local;
unsigned int socket_handle, new_socket_handle, temp;

socket_handle = socket(0, SOCKET_TYPE_STREAM, 0);
local.sin_port = 80;
bind(socket_handle, &local, sizeof(local));
listen(socket_handle, 5);

printf("Ready to accept HTTP connections...\\r
");

// here is the main loop of the HTTP server
while (1)
{
    new_socket_handle = accept(socket_handle, &address, sizeof(address));
    handleRequest(new_socket_handle);
    closesocket(new_socket_handle);
}

要注意當(dāng)接收一個新的socket時,這個簡易應(yīng)用程序不會啟動一個新的線程或進程來對請求進行處理,而是在同一進程中處理請求。任何優(yōu)于演示品質(zhì)的HTTP服務(wù)器都會在一個新的線程中處理到來的請求,允許同時發(fā)生多個連接并能進行處理。請求處理完畢后我們關(guān)閉socket并等待下一個到來的連接。

HandleRequest方法從接入的請求中解析出文件名并且檢查驗證請求方法為'GET'。不允許使用其它的方法(即使是'POST'、 'HEAD'或'OPTIONS')。

為SDCC編譯器編寫DS80C400匯編函數(shù)的注意事項

雖然SDCC提供了豐富的庫函數(shù)集合,但是有時我們會想用匯編語言編寫優(yōu)化的模塊,或?qū)F(xiàn)有的8051匯編模塊移植到我們的應(yīng)用程序中。若8051匯編語言函數(shù)由SDCC編譯器編寫的C程序來調(diào)用時,在編寫這些匯編函數(shù)時需切記以下要點:

  1. 函數(shù)參變量傳遞約定:下表說明了重入函數(shù)的變量傳遞方式

    Argument position Character Integer Long Address
    First argument Dpl Dph:dpl B:dpx:dph:dpl B:dpx:dph:dpl
    Second argument onwards the values will be passed through hardware stack from right to left

    函數(shù)void sample_func(long x, long y,int z) reentrant;的參數(shù)傳遞如下:

  2. 數(shù)據(jù)類型存儲規(guī)則:

    SDCC遵循低字節(jié)在前(Little Endian)的存儲規(guī)則。換句話說,SDCC使用最低有效字節(jié)在前的二進制數(shù)據(jù)存儲格式。
    例如,一個32位長的數(shù)值0xDEADBEEF將會按如下方式存儲:

  3. 地址指針大小

    SDCC使用四個字節(jié)來保存存儲器地址。下表給出了存儲器地址的格式:

    Most significant byte 3^rd^ byte 2^nd^ Byte Least significant byte
    address type (possible values for ds80c400: 0-near, 1-far, 2-code) MSB of address 2^nd^ byte of address LSB of address

    近距離地址指針使用間接尋址、內(nèi)部RAM存儲器(idata)來進行存儲,并且其地址大小只有一個字節(jié)。原地址的高16位不用。

    遠距離地址指針用于訪問外部存儲器,為24位。

    有關(guān)SDCC ASx8051匯編器的更多信息,請參考ASxxxx assembler reference manual (ASxxxx匯編器參考手冊)。所有SDCC文檔可以從http://sdcc.sourceforge.net/snap.php#Docs/處下載。

局限性以及開發(fā)問題

以下是我們使用4.0版本的SDCC編譯器時發(fā)現(xiàn)的局限性:

  1. 編譯器不支持遞歸函數(shù)
  2. 庫程序未優(yōu)化
  3. 編譯器不支持宏指令
  4. 像printf和sprintf之類的函數(shù)存在一些問題,在一些參數(shù)組合下不能正常工作。例如,以下代碼會導(dǎo)致應(yīng)用程序掛起:
    char temp[50];
    sprinf(temp,"%d",234234);
    
  5. 帶有長常量的算術(shù)表達式不能正常工作。
  6. 用于數(shù)組初始化('int[] values={1, 2, 3, 4, 5};')所生成的匯編代碼不能正確初始化存儲器區(qū)域。

由于SDCC一直處于飛速發(fā)展之中,如果在你的SDCC工具現(xiàn)有版本中發(fā)現(xiàn)任何的缺陷或者你的版本比當(dāng)前發(fā)布的版本早很久時,請下載最新版本。### 結(jié)論

Dallas Semiconductor為SDCC編譯器提供的DS80C400 ROM庫為嵌入式網(wǎng)絡(luò)應(yīng)用設(shè)計者們尋找低成本網(wǎng)絡(luò)微控制器解決方案提供了更多的選擇。和TINI Java運行環(huán)境相比,使用C語言的DS80C400開發(fā)者將能夠編寫精巧的應(yīng)用程序,賦予系統(tǒng)足夠的速度、能力和代碼空間來解決任何問題。Dallas Semiconductor正致力于將所有目前工作于Keil編譯器的DS80C400庫移植到SDCC。請經(jīng)常訪問DS80C400 SDCC庫主頁來獲得升級。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7455

    瀏覽量

    163623
  • ROM
    ROM
    +關(guān)注

    關(guān)注

    4

    文章

    562

    瀏覽量

    85679
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1618

    瀏覽量

    49057
收藏 人收藏

    評論

    相關(guān)推薦

    用IAR編譯器開發(fā)DS80C400

    本應(yīng)用筆記闡述了如何開始使用8051 IAR Embedded Workbench?來創(chuàng)建DS80C400C語言應(yīng)用程序。通過一個簡單的HTTP服務(wù)演示如何使用DS80C400的R
    發(fā)表于 12-07 09:35 ?3044次閱讀
    用IAR<b class='flag-5'>編譯器</b>開發(fā)<b class='flag-5'>DS80C400</b>

    Xilinx SDK中使DS-5編譯器嗎?

    Platform Cable USB II(DLC10)將其加載到我的zc702板上。如何在SDK中成功編譯它?我應(yīng)該在Xilinx SDK中使DS-5編譯器嗎?但是,我不知道如何
    發(fā)表于 03-27 07:43

    如何在音視頻范例網(wǎng)絡(luò)多媒體系統(tǒng)中應(yīng)用DS80C400網(wǎng)絡(luò)型微控制

    本文對如何在音視頻范例網(wǎng)絡(luò)多媒體系統(tǒng)中應(yīng)用DS80C400網(wǎng)絡(luò)型微控制進行分析與討論。
    發(fā)表于 06-02 06:24

    安裝編譯器SDCC的方法

    STC單片機+SDCC+Stcgal(MAC環(huán)境)1. 安裝編譯器SDCC:我們Mac上通常使用 brew 這個包管理工具,通過 brew 來安裝
    發(fā)表于 11-25 08:12

    DS80C400評估板中文資料pdf

    DS80C400評估板
    發(fā)表于 04-15 17:42 ?50次下載

    采用DS80C400創(chuàng)建網(wǎng)絡(luò)多媒體應(yīng)用

    采用DS80C400建立網(wǎng)絡(luò)多媒體應(yīng)用令人振奮的多媒體應(yīng)用——包括有線廣播(PA)系統(tǒng)、網(wǎng)絡(luò)門、MP3播放以及安全攝像機等——可以采用一種低成本的網(wǎng)絡(luò)型微處理建立。本
    發(fā)表于 07-21 00:47 ?16次下載

    DS80C400嵌入式智能網(wǎng)橋中的應(yīng)用

    文章提出了以DS80C400 為核心處理將多路CAN 網(wǎng)絡(luò)與多路以太網(wǎng)互連的嵌入式智能網(wǎng)橋?qū)崿F(xiàn)方案。給出了 DS80C400 MII 與外部物理設(shè)備之間的連接,詳細(xì)闡述JAVAKIT
    發(fā)表于 06-03 08:51 ?7次下載

    使用免費的SDCC C編譯器開發(fā)DS89C430/450系列

    摘要:SDCC (小型設(shè)備C編譯器)是為8位微控制開發(fā)的免費C編譯器。本應(yīng)用筆記演示如何使用
    發(fā)表于 04-23 13:55 ?6091次閱讀
    使用免費的<b class='flag-5'>SDCC</b> <b class='flag-5'>C</b><b class='flag-5'>編譯器</b>開發(fā)<b class='flag-5'>DS89C</b>430/450系列

    基于DS80C400微控制實現(xiàn)音視頻范例網(wǎng)絡(luò)多媒體系統(tǒng)的設(shè)計

    新型DS80C400是具有高性能結(jié)構(gòu)和多層網(wǎng)絡(luò)節(jié)點和I/O口及穩(wěn)定的ROM固件的網(wǎng)絡(luò)微控制,它廣泛應(yīng)用于工業(yè)控制/自動化、數(shù)據(jù)轉(zhuǎn)換、遠距離數(shù)據(jù)采集設(shè)備、環(huán)境監(jiān)測、家庭/辦公室自動化、交易/支付
    的頭像 發(fā)表于 06-23 15:38 ?2473次閱讀
    基于<b class='flag-5'>DS80C400</b>微控制<b class='flag-5'>器</b>實現(xiàn)音視頻范例網(wǎng)絡(luò)多媒體系統(tǒng)的設(shè)計

    SDCC編譯器和FreeRTOSC8051F上的開發(fā)的應(yīng)用

    SDCC編譯器和FreeRTOSC8051F上的開發(fā)的應(yīng)用(通訊電源技術(shù)2020年15期)-SDCC
    發(fā)表于 08-31 11:38 ?4次下載
    <b class='flag-5'>SDCC</b><b class='flag-5'>編譯器</b>和FreeRTOS<b class='flag-5'>在</b><b class='flag-5'>C</b>8051F上的開發(fā)的應(yīng)用

    SDCC編譯器和FreeRTOSC8051F上的開發(fā)應(yīng)用

    SDCC編譯器和FreeRTOSC8051F上的開發(fā)應(yīng)用(肇慶理士電源技術(shù)有限公司怎么樣)-引言MCS-51系列單片機應(yīng)用廣泛,我國學(xué)習(xí)
    發(fā)表于 09-17 12:53 ?8次下載
    <b class='flag-5'>SDCC</b><b class='flag-5'>編譯器</b>和FreeRTOS<b class='flag-5'>在</b><b class='flag-5'>C</b>8051F上的開發(fā)應(yīng)用

    SDCC編譯器和FreeRTOSC8051F上的開發(fā)應(yīng)用

    SDCC編譯器和FreeRTOSC8051F上的開發(fā)應(yīng)用(核達中遠通電源技術(shù)有限公司招聘信息)-SDCC
    發(fā)表于 09-18 17:14 ?21次下載
    <b class='flag-5'>SDCC</b><b class='flag-5'>編譯器</b>和FreeRTOS<b class='flag-5'>在</b><b class='flag-5'>C</b>8051F上的開發(fā)應(yīng)用

    利用DS16C32/DS80C390加速80/400位數(shù)學(xué)運算

    Maxim DS80C390/DS80C400高速微控制為最終用戶提供專用的硬件16/32位數(shù)學(xué)加速。訪問數(shù)學(xué)加速是通過使用五個專用的
    的頭像 發(fā)表于 02-21 10:36 ?1138次閱讀
    利用<b class='flag-5'>DS16C</b>32/<b class='flag-5'>DS80C</b>390加速<b class='flag-5'>80</b>/<b class='flag-5'>400</b>位數(shù)學(xué)運算

    采用DS80C400芯片軟件的互聯(lián)網(wǎng)揚聲

    DS80C400 是支持互聯(lián)網(wǎng)的揚聲的完美選擇。DS80C400的ROM使應(yīng)用能夠以傳輸原始音頻數(shù)據(jù)的速度通過網(wǎng)絡(luò)進行通信。通過增加一個16位DAC、一些電阻和少量的焊接工作,DS80C40
    的頭像 發(fā)表于 06-13 15:41 ?585次閱讀
    采用<b class='flag-5'>DS80C400</b>芯片軟件的互聯(lián)網(wǎng)揚聲<b class='flag-5'>器</b>

    SDCC-Linux下的51 MCU編譯器

    SDCC (小型設(shè)備C編譯器)是為8位微控制開發(fā)的免費C編譯器。盡管兼容多種不同體系結(jié)構(gòu),但
    的頭像 發(fā)表于 06-16 15:19 ?4904次閱讀