2017年2月26日 星期日

將C編譯成DLL,給C#使用(1)

(1). 選擇"檔案" > "新增" > "專案"。

(2). 選擇"Visual C++" > "Win32" > "Win32主控台應用程式",並且修改專案的"名稱"後按"確定"。

(3). 直接按"下一步>"。

(4). 選擇"DLL"後按"完成"。

(5). 在"方案總管"下使用滑鼠點選"標頭檔",按"滑鼠右鍵"後,選擇"加入" > "新增項目"。

(6). 選擇"標頭檔(.h)"後,修改"名稱",按"新增",在此我將檔名改成"add.h"。

(7). 輸入程式。

1
2
3
4
5
#include "stdafx.h"
 
extern "C"{
    __declspec(dllexport) int add(int a, int b);
}


(8). 選擇"方案總管"下的"dllmain.cpp",輸入程式。

1
2
3
4
5
6
7
#include "stdafx.h"
#include "add.h"
 
int add(int x, int y)
{
    return x + y;
}


(9). 點選"本機Windows偵錯工具"開始編譯。

(9). 可以看見在專案目錄的"Debug"路徑下出現xxx.dll與xxx.lib檔,xxx.dll就是我們要的結果。

2017年2月15日 星期三

C# 編譯器選項 /unsafe

(1). 程式中遇到使用unsafe關鍵字,會發現編譯錯誤,請選擇"專案名稱"後按"滑鼠右鍵",點選"屬性"。

(2). 在"建置"標籤頁勾選"容許Unsafe程式碼"後就可以編譯成功。

2017年2月13日 星期一

Keil C除錯設定

1. 使用Nuvoton NUC122RD2AN為範例操作,下載"NuMicro ICP Programming Tool 2.01.6592.exe"並安裝。

2. 點選"Options for Target..."。

2. 選擇標籤頁"Debug",點選"Use:",下拉式選單設定成"Nuvoton Nu-Link Debugger"後按"Settings"按鍵。

3. 在Chip Select > Chip Type:下拉式選單中選擇"NUC100",Download Options中勾選"Verify Memory Code"後按"OK"。

Keil C使用CMSIS

1. 使用Nuvoton NUC122RD2AN為範例操作,以下兩個步驟需先安裝完畢。
    a. 先安裝好Keil C IDE。
    b. 安裝Nuvoton "Nu-Link_Keil_Driver 2.01.6592.exe"程式。

2. 開啟Keil C IDE,選擇"Project" > "New uVision Project..."。

3.  輸入計劃名稱後,按"存檔"。


4. 選擇Device名稱,我因為找不到"NUC122RD2AN",改選擇"NUC122LD2AN",選擇好之後按"OK"。

5. 先刪除建立計劃時所產生的"Source Group 1",使用滑鼠點選"Source Group 1"後按"滑鼠右鍵",選擇"Remove Group 'Source Group 1' and its Files"。


6. 再新增Group,使用滑鼠點選"Target 1"後按"滑鼠右鍵",選擇"Add Group..."。

7. 依照步驟6.增加3個Group,並修改名稱為"CMSIS"、"user"、"library",使用滑鼠點選一次Group,就可以修改名稱。

8. 下載"NUC122_Series_BSP_CMSIS_V3.00.002.zip"並解壓縮,在路徑..\NUC122SeriesBSP_CMSIS_V3.00.002\Library下可以看見,"CMSIS"、"Device"、"StdDriver"三個資料夾,請將三個資料夾複製。

9. 將"CMSIS"、"Device"、"StdDriver"三個資料夾複製到計劃檔案的相同的路徑中。

10. 點選"CMSIS"按"滑鼠右鍵",選擇"Add Existing File to Group 'CMSIS'...",加入路經..\Device\Nuvoton\NUC122\Source\ARM下的"startup_NUC122.s"與..\Device\Nuvoton\NUC122\Source下的"system_NUC122.c"檔案。

11.  點選"library"按"滑鼠右鍵",選擇"Add Existing File to Group 'CMSIS'...",加入路經..\StdDriver\src下所有的檔案,當然不需要的功能函示庫也可以選擇不加入,增加程式編譯時的速度。

12. 增加主程式,選"user"按"滑鼠右鍵",選擇"Add New Item to Group 'user'..."。

13. 點選"C File (.c)",在Name:欄位中輸入"main"後按"Add"。

14. 最後完整的程式檔案部屬如下圖所示。

15. 點選"Options for Target..."icon。

16. 標籤頁"Target"的Xtal(MHz)欄位改成"12.0"。

17. 標籤頁"C/C++"的include Paths,點選路徑案件,增加".\CMSIS\Include"、".\StdDriver\inc"、".\Device\Nuvoton\NUC122\Include"三個路徑後按"OK"。

18. 最後點選"main.c"輸入自己的程式碼,在主程式前,標頭檔#include "NUC122.h"要先加入。

2017年1月5日 星期四

Lattice Diamond 3.8 - (11) 改變Active-HDL模擬視窗背景顏色與波形顏色

1. 原始設定背景顏色是灰色偏白,因此會想修改成,背景顏色是黑色,看起來比較舒服。

2. 選擇Tool > Preferences > Environment >Appearance,在Subcategory:欄位就可以做顏色的設定。

以下是我自己修改的部分為:
Wave cell background color > 黑色
Wave text color > 白色
Wave measurement and comment color > 淡藍色
One value color > 綠色
Zero value color > 綠色
Bus line color >  綠色

Lattice Diamond 3.8 - (10) 改變Edit視窗背景顏色

1. 原始設定背景顏色是白色,文字是黑色,盯者銀幕看久了眼睛容易疲倦,因此會想修改成,背景顏色是黑色,文字是白色看起來比較舒服。

2. 選擇Tool > Options > Source Editor > Colors,設定完成按OK。