我們有一個(gè)程序播放器與最后一個(gè)固件。 現(xiàn)在,我們需要一個(gè)編譯器和應(yīng)用程序來(lái)編輯代碼。這里我講的是Windous的版本。編譯器將使用SDCC。VS 代碼的編輯。
從這里,我們下載Windous的VS Code發(fā)行版。 Отсюда有一個(gè)存檔,您需要工作的其他所有內(nèi)容都位于其中。
解壓包,在文件夾中,我們有一個(gè)發(fā)行版:sdcc-4.2.0-x64-setup。持續(xù)安裝 SDCC 和 VSCode 程序。除了發(fā)行版之外,存檔還有一個(gè)文件夾“padauk-scd-scdo-starter-master”。該文件夾包含一個(gè)用于編寫(xiě)Padauk微控制器代碼的程序,下面支持的列表應(yīng)廣科技單片機(jī)的型號(hào):
PMS150C PMS152 PFS154 PMS154
PMS 171171 B ((PMS171B已在此版本中解析)
PFS 172 PFSPFS 173
PMS15A
PFS154 PFS172 PFS173
一、開(kāi)發(fā)環(huán)境搭建
編譯器安裝
安裝程序后,打開(kāi)文件夾:正確的鼠標(biāo)按鈕是“用代碼打開(kāi)”
使用SSDC(SDCC)4.2.0版本(優(yōu)先于4.4.0)
下載地址需根據(jù)原文指引獲取
注意版本兼容性:新版需調(diào)整配置文件
代碼編輯器配置
推薦CodeBlocks IDE
設(shè)置默認(rèn)編譯器:Settings/Compiler > 選擇SDCC并設(shè)為默認(rèn)
我們同意警告,點(diǎn)擊“是”。使用圖標(biāo)創(chuàng)建干凈的文件
二、項(xiàng)目創(chuàng)建規(guī)范
新建項(xiàng)目
創(chuàng)建空項(xiàng)目(Empty project)
命名規(guī)范:建議英文命名(如TEST1)
#define PFS154
#define F_CPU 1000000
#define TARGET_VDD_MV 3000
#define TARGET_VDD 3.0
#include
#include "auto_sysclock.h"
#include "delay.h"
#define BTN_L()!(PA & (1 << 0))// левую кнопку навешиваем на PA0
#define BTN_R()!(PB & (1 << 0))// правую кнопку навешиваем на PB0
// Main program
void main() {
PAC=0b11111110; // Enable Button as digital input
PAPH=0b00000001; // подключаем подтягивающие на порт PA,включая вывод кнопоки
PBC=0b11111110; // выводы PB определяем на выход кроме PB0
PBPH=0b00000001; // подключаем подтягивающий на порт PB0, вывод кнопоки
int i = 0;
PB=0;
_delay_ms(300);
if (BTN_R()) { // при нажатии верхней кнопки
i=7;
while (i>=0) {
PB=PB | (1 << i);
_delay_ms(50);
i=i-1;
}
}
else if (BTN_L()) { //при нажатии нижней кнопки
i=0;
while (i<=7) {
PB=PB | (1 << i);
_delay_ms(50);
i=i+1;
}
}
else {
PB=255; // мерцание, если кнопки не нажаты
_delay_ms(200);
}
}
// Startup code - Setup/calibrate system clock
unsigned char _sdcc_external_startup(void) {
AUTO_INIT_SYSCLOCK();
AUTO_CALIBRATE_SYSCLOCK(TARGET_VDD_MV);
return 0; // Return 0 to in SDCC to continue with normal initialization.
}
配置選項(xiàng):
? 選擇SDCC編譯器
? 僅保留Release配置
? 取消"Create 'Debug' configuration"
項(xiàng)目屬性設(shè)置
構(gòu)建目標(biāo) > 構(gòu)建選項(xiàng) > 其他選項(xiàng):
添加MCU專(zhuān)用標(biāo)志(如"-mpdk14")
輸出設(shè)置:
? 修改擴(kuò)展名為.ihx
? 取消"Auto-generate filename extension"
? 選擇"Console application"類(lèi)型
三、應(yīng)廣科技單片機(jī)編譯與燒錄流程
編譯我們的代碼“Cntr+Shift+B”的命令。在下拉窗口中,選擇微控制器的位深度。在這種情況下,PFS154是14。編譯立即開(kāi)始。如果沒(méi)有錯(cuò)誤,則顯示這樣的文本。報(bào)告中最主要的是底部是“完成”。
使用此代碼,我們將縫合布局板,其核心是微控制器PFS154-14。
板上有三個(gè)LED和一個(gè)按鈕。板的設(shè)計(jì)使其可以輕松安裝在程序機(jī)的開(kāi)關(guān)中。其功能有點(diǎn)寬,可以補(bǔ)充第二個(gè)按鈕,一個(gè)16腿的微控制器PPS154。按鈕與“INT0”、“INT1”的結(jié)論相連。
下面是我們需要的幾支球隊(duì)。將布局插入程序員
要檢查連接的軟件器和/或微控制器,請(qǐng)將“Cnr+P”熱鍵插入“Probe MC”下拉窗口中的“Task+Geet”。接收結(jié)果
要固件微控制器熱鍵 » Cntr + P " , 在下降窗口中,我們輸入"taksk+space" 選擇"寫(xiě)入MC " 。在下拉窗口中,選擇我們的微控制器。我們?cè)谄聊簧系玫竭@個(gè)結(jié)果
我們?cè)贛K中拼接代碼,從程序員那里拉出布局,提供電源。打開(kāi)電源時(shí),LED開(kāi)始閃爍,按下按鈕時(shí),一定有運(yùn)行火的效果。
代碼管理
創(chuàng)建main.c文件并添加示例代碼
通過(guò)Ctrl+F9執(zhí)行編譯
輸出路徑:項(xiàng)目目錄\bin\Release*.ihx
燒錄工具使用
使用EASYPDKPROG(需單獨(dú)安裝)
常用命令:
easypdkprog probe # 檢測(cè)硬件連接
easypdkprog -n PFS154 write Test1.ihx # 燒錄程序
easypdkprog -n PFS154 read readout.ihx # 讀取固件
四、應(yīng)廣科技單片機(jī)開(kāi)發(fā)示例代碼處理
資源獲取渠道
官方示例(fppa-code-examples):需原廠(chǎng)IDE
社區(qū)資源:
a) sdcc-pdk-code-examples:直接可用
b) free-pdk-examples:需附加頭文件
頭文件配置
下載完整項(xiàng)目包(GitHub Code/Download ZIP)
文件部署:
├─ easy-pdk/ → SDCC安裝目錄\include
├─ pdk/ → SDCC安裝目錄\include
└─ *.h → 項(xiàng)目同級(jí)目錄
五、兼容性注意事項(xiàng)
設(shè)備支持
全支持型號(hào):PFS154/PFS172/PFS173等
有限支持:PMS171B(需特殊處理)
開(kāi)發(fā)限制
free-pdk-examples處于開(kāi)發(fā)階段
需手動(dòng)添加預(yù)定義:
#define PFS154
#define F_CPU 10000
#define TARGET_VDD_MV 4000
六、應(yīng)廣單片機(jī)開(kāi)發(fā)的調(diào)試建議
版本驗(yàn)證
確認(rèn)SSDC版本與社區(qū)文件匹配
檢查MCU型號(hào)與編譯參數(shù)對(duì)應(yīng)關(guān)系
路徑管理
確保頭文件路徑正確
驗(yàn)證輸出文件生成路徑
燒錄檢測(cè)
優(yōu)先執(zhí)行probe命令確認(rèn)硬件連接
讀取固件驗(yàn)證燒錄完整性
附:MCU編譯參數(shù)速查表
MCU型號(hào) 編譯參數(shù)
PFS154 -mpdk14
PMS150C -mpdk13
PMS132 -mpdk15
PMS134 -mpdk16
注:具體參數(shù)需根據(jù)實(shí)際MCU架構(gòu)調(diào)整,建議參考SDCC官方文檔和Free PDK社區(qū)更新說(shuō)明