顯示具有 D.嵌入式系統(Embedded Sys 標籤的文章。 顯示所有文章
顯示具有 D.嵌入式系統(Embedded Sys 標籤的文章。 顯示所有文章

2017年9月4日 星期一

成果紀錄:將uClinux porting 到 STM32F4 Discovery,與執行一支Linux AP 及 執行 lseek 的Linux Device Driver驅動程式

這裡簡單紀錄這一 "將uClinux porting 到 STM32F4 Discovery" 的成果。
參考這些網址: http://www.emcu.it/uCLinux/uCLinux.html 、 https://emcraft.com/products/343, 將 uBoot 、 uClinux、及 ROM file system Image正確燒錄至 STM32F4 Discovery。
硬體連接 透過 USB轉232 連接到STM32F4 Discovery的 PC10/TX, PC11/RX,在HOST端 PC 執行 putty serial console。如下圖:

 

接著 寫一支 Linux AP C1.c(Hello World), 透過 Cross Compiler 編譯成 C1.exe, 之後正確的傳至 在STM32F4 Discovery執行的 uClinux, C1.exe 放在 /var/tmp 目錄。
再接著 寫 uClinux 的驅動範例與搭配的AP程式、驅動程式 Drv1.c 將其編譯成 Drv.ko、AP程式 AP1.c 編譯成 AP1.exe, 之後正確的傳至 在STM32F4 Discovery執行的 uClinux,也是放在 /var/tmp 目錄。
1. 先執行 ./C1.exe 會看到 Hello CYH,
2. 再來測試於 STM32F4 Discovery 上的 uClinux 執行 Linux Device Driver驅動程式: 先 insmod Drv1.ko, 會看到:
Hello, world
name=cyh , age=9999
之後執行 ./AP1.exe, 正確執行, 畫面如下:


2017 9/5成果紀錄:將uClinux porting 到 STM32F4 Discovery,與執行一支Linux AP 及 執行 lseek 的Linux Device Driver驅動程式

這裡簡單紀錄這一 "將uClinux porting 到 STM32F4 Discovery" 的成果。
參考這些網址: http://www.emcu.it/uCLinux/uCLinux.html 、 https://emcraft.com/products/343, 將 uBoot 、 uClinux、及 ROM file system Image正確燒錄至 STM32F4 Discovery。
硬體連接 透過 USB轉232 連接到STM32F4 Discovery的 PC10/TX, PC11/RX,在HOST端 PC 執行 putty serial console。如下圖:


uClinux_STM32F4_0.jpg - 嵌入式


接著 寫一支 Linux AP C1.c(Hello World), 透過 Cross Compiler 編譯成 C1.exe, 之後正確的傳至 在STM32F4 Discovery執行的 uClinux, C1.exe 放在 /var/tmp 目錄。
再接著 寫 uClinux 的驅動範例與搭配的AP程式、驅動程式 Drv1.c 將其編譯成 Drv.ko、AP程式 AP1.c 編譯成 AP1.exe, 之後正確的傳至 在STM32F4 Discovery執行的 uClinux,也是放在 /var/tmp 目錄。


1. 先執行 ./C1.exe 會看到 Hello CYH,
C1.c 程式如下:
#include <stdio.h>
int main()
{
printf( "Hello CYH\r\n" );
return 0;
}


2. 再來測試於 STM32F4 Discovery 上的 uClinux 執行 Linux Device Driver驅動程式: 先 insmod Drv1.ko, 會看到:
Hello, world
name=cyh , age=9999
之後執行 ./AP1.exe, 正確執行, 畫面如下:


uClinux_STM32F4_1.jpg - 嵌入式


 


AP1.c 程式如下:
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
int main( int argc, char* argv[] )//stdin=0 out=1 err=2
{
size_t readLen;
int fd;
char BUF[ 64 ]; // mknod /dev/chrDrv1 c 99 0
fd = open ( "/dev/chrDrv1" , O_RDWR );

write ( fd , (void *)"CYH1234567890ABCDEFGHIJ" , 24 );
lseek ( fd , 0, SEEK_SET );

memset(BUF,0,64);
readLen = read ( fd , (void *)BUF, 3 ); // BUF <- "CYH";
printf( "1. BUF=%s\r\n", BUF );

memset(BUF,0,64);
readLen = read ( fd , (void *)BUF, 10 ); // BUF <- "1234567890";
printf( "2. BUF=%s\r\n", BUF );

memset(BUF,0,64);
readLen = read ( fd , (void *)BUF, 10 ); // BUF <- "ABCDEFGHIJ";
printf( "3. BUF=%s\r\n", BUF );

memset(BUF,0,64);
readLen = read ( fd , (void *)BUF, 10 ); // BUF <- EOF or 0;
printf( "BUF=%s\r\n", BUF );

close ( fd ) ;
return 0;
}


2014年10月8日 星期三

ARM9教學開發板的BSP已經上傳完成

資料檔名是 S3C2416EVB_BSP.zip,有上該課程的學員可以發MAIL給我,來索取下載密碼與網址喔


2011年9月26日 星期一

ARM S3C-24x0( S3C2410/S3C2440/S3C2450) & TFT 3.5寸 液晶螢幕(24位元)帶觸摸 教學開發板


PS:圖片是實物拍攝喔。



可支援之作業系統
- Linux2.6.29 + Qtopia
- WindowsCE.NET 5.0
- 非作業系統測試代碼(可使用H-JATG單步調試)
- uCOS-II RTOS

硬體特性:
• CPU 處理器:選用Samsung S3C2440A( 開發板功能 可適用於 S3C2410/S3C2450 等),主頻400MHz,最高533Mhz
• SDRAM 記憶體:在板64M SDRAM,32bit 資料匯流排:SDRAM 時鐘頻率高達100MHz
• FLASH 存儲:在板64M Nand Flash、在板2M Nor Flash
• LCD 顯示:板上集成4 線電阻式觸摸屏介面,可以直接連接四線電阻觸摸屏,支持黑白、4 級灰度、16 級灰度、256 色、4096 色STN 液晶屏,尺寸從3.5 寸到12.1寸,螢幕解析度可以達到1024x768 象素;支持黑白、4 級灰度、16 級灰度、256 色、64K 色、真彩色TFT 液晶屏,尺寸從3.5 寸到12.1 寸,螢幕解析度可以達到1024x768 象素;標準配置為三星 256K色320x240/3.5 英寸TFT 真彩液晶屏,帶觸摸屏;(Inverting)供電。
• 介面和資源
- 1 個10MM 乙太網RJ-45 介面(採用DM9000 網路晶片)
- 3 個串列口
- 1 個USB Host
- 1 個USB Slave B 型介面
- 1 個SD 卡存儲介面
- 1 路身歷聲音頻輸出介面,一路麥克風介面;
- 1 個2.0mm 間距10 針JTAG 介面
- 4 USER Leds
- 6 USER buttons(帶引出座)
- 1 個PWM 控制蜂鳴器
- 1 個可調電阻,用於AD 模數轉換測試
- 1 個I2C 匯流排AT24C08 晶片,用於I2C 匯流排測試
- 1 個2.0 mm 間距20pin 攝像頭介面
- 電源介面(5V),帶電源開關和指示燈
• 系統時鐘源: 12M 無源晶振
• 即時時鐘:內部即時時鐘(帶後備鋰電池)
•擴展介面:1 個34 pin 2.0mmGPIO 介面,1 個40 pin 2.0mm 系統匯流排界面

ARM-S3C6410教學開發板



特色

ARM-S3C6410開發板是為幫助客戶快速開發基於三星公司S3C6410 SOC晶片的產品,而開發的一款快速驗證之嵌入式教學平臺,平台採用高性能、低功耗、超小體積的低成本ARMCore-6410為核心,並於母板進行豐富的擴展。它可以幫助客戶迅速對S3C6410
CPU
進行應用評估、軟體系統開發和硬體設計。設計完成後,可以採用ARMCore-6410快速的進入產品的量產階段。


● 本開發版提供了完整的底層作業系統的支援和完整的應用介面,適用於嵌入式工業控制,多媒體播放,車載GPS及掌上型設備等方面的應用產品。

● 另提供了完善的底層作業系統的支援和完整的應用介面。開發LCDVGA彩色螢幕介面,AC97音效輸入輸出介面,10/100M網路介面,USB Host/Device介面,SD/MMC卡介面,內嵌式GPS模組(Option)
,並可擴充GPRS/G模組介面(Option)等。


● 提供豐富的 IO 介面電路、驅動程式與開發板測試範例。



硬體規格

CPUSamsung S3C6410XHL-66ARM1176JZF-S Core667MHz System Clock

Memory


  SDRAM
DDR 128M Bytes

  Nand Flash
256M
Bytes

  Nor Flash
8M
Bytes

● 網路介面:10/100M EthernetDM9000AE
帶指示燈 RJ-45 介面


USB 介面:


  1
USB HOSTUSB 1.1 spec)介面,支援全速(12Mbps)或低速(1.5Mbps)傳輸

  1
USB HS OTGUSB 2.0 spec)介面,最高支援480Mbps高速傳輸

● 串列埠:

  1
3 線制串列埠,2 DB9 串列埠 ( BlueTooth / GPS / IIC 複用)

● 音效介面:


  AC97
介面晶片,立體聲音效輸出介面可接耳機或音箱;支援錄音,音效輸入介面可接麥克風

CMOS Sensor 攝影機介面(Option)
UVC

 
一個 CMOS Sensor 攝影機介面


SD 卡介面:

  2
個兼容SD/MMC/SDIO,最高可支持32G SD卡存儲

LCD 介面:

 
系統平台標配為 16.7M 800x480 / 7.0 英寸 TFT 液晶螢幕,附觸控功能

 
支援 TFT 液晶螢幕,尺吋從 3.5 吋到15

Touch 介面:


  1
個觸控螢幕控制器(四線電阻式)

VGA 介面:


 
可直接連接各種 VGA 介面的 CRT 顯示器或液晶顯示器,帶對比度微調電位器,最高輸出解析度為 800*600

TVNTSC / PAL)介面:


 
支援 TV TunetNTSCPAL),可直接接各種 AV 介面的 CRT 顯示器

RTC時鐘


  S3C6410
晶片內RTC即時時鐘

GPS模組(Option)

 
採用SiRF第三代高靈敏度、低耗電量晶片Star-III。模組內建ARM7 TDMI CPU5追蹤20顆衛星的能力


JTag介面

 
一個20Pin標準JTAG介面,支援ADS1.2Jtag晶片燒寫

● 電源介面

  CPU
單獨使用多組高效率開關電源分別為內核和IO供電,穩定可靠

● 豐富的 IO 子板介面

  LED * 4(
內建)+8(EBI
擴充)Key * 8Keypad 4*3Seg7 * 3Charecter
LCD 16*2
、同時也拉出了位址線、資料線、控制介面及5V3.3V電源、地線等使用者擴充可能用到的接腳


GPRS/GSM/Bluetooth模組介面(Option)

● 作業系統和軟體支援


 
支援Linux-2.6作業系統

 
驅動程式包含串列、網路、SD/MMC卡、NOR FlashAC97音效

 
觸控螢幕、USB HOSTUSB DEVICERTC等多種驅動

 
應用程式包括各種範例與QT等圖形系統

可完成之實驗

Kernel compiler實驗

Kernel Porting實驗

Ethernet 10/100BaseT實驗

Touch Panel實驗

RTC實驗

AUDIO音頻輸入/輸出實驗

Serial Port RS232實驗

Seg-7 顯示器實驗

LED 燈實驗

● 矩陣鍵盤實驗

MMC/SD 記憶卡實驗

SIM 實驗(Option)

Camera Interface實驗
(Option)

● 無線網卡作無線通訊 實驗
(Option)

AD/DA應用模組實驗
(Option)

GSM/GPRS 無線通訊模組實驗
(Option)

GPS Port無線通訊 實驗
(Option)

● 中斷控制實驗


LCD/VGA實驗

GUI圖形介面實驗


Bootloader實驗

QT應用程式實驗

Web Server開發實驗

● 資料庫的應用,使用 sqlite

● 其他實驗陸續擴充中


● 系統驅動程式及實驗範例均提供source code以供教學發展使用

Linux BSP CD
內容

● 包含以下子目錄:

1. Cross_Compiler

2. U-boot

3. Kernel

4. Filesystem

5. Sample Image
u-boot.binzImage
rootfs.cramfs 等映像檔。


6. Driver
:驅動程式的程式碼。

7. Demo Source
:測試範例的 DEMO 程式。

8. Documention
: 線路圖、EVB使用手冊





2011年3月24日 星期四

VMware Player變更Hot Key設定

VMware PlayerHot Key是『Ctrl+Alt』鍵,這種組合在Linux OS環境下,會造成Virtual Machine Linux OS下無法切換到Virtual Console。如果是VMware Workstation版本,可直接用圖型介面修改。


 


但免費的VMware Player就只能手動改設定檔了。


The file is in C:\Documents and Settings\Administrator\Application Data\VMware\preferences.ini


 


pref.hotkey.shift = "true"


2010年4月17日 星期六

Ubuntu 設定 IP and 解決 lost eth0 for VMWare

1. 我在 Ubuntu 下是使用 root 權限進入


2. 請修改 /etc/network/interfaces


A.Ubuntu DHCP 設定方式如下:
auto eth0
iface eth0 inet dhcp


B. Static IP 設定方式如下:
auto eth0
iface eth0 inet static
address 192.168.10.100
netmask 255.255.255.0
gateway 192.168.10.1


如要設定 Static route,使用 up command 來設定,如下:
up route add -net 10.10.0.0 netmask 255.255.0.0 gw 192.168.10.254
這樣就可以透過 192.168.10.254 這台機器連到 10.10 的網段去



一起寫就是:
auto eth0
iface eth0 inet static
address 192.168.10.100
netmask 255.255.255.0
gateway 192.168.10.1
up route add -net 10.10.0.0 netmask 255.255.0.0 gw 192.168.10.254



重啟動網路:
$ /etc/init.d/networking restart


另外,如要設定單網卡多個 IP,請直接在網卡後,加上 “:n“
auto eth0:0
iface eth0:0 inet static
address [IP]
netmask [your_netmask]
gateway [[your_gateway]


auto eth0:1
iface eth0:1 inet static
address [IP]
netmask [your_netmask]
gateway [[your_gateway]


################################################


lost eth0 when using a copied ubuntu-server vm
1. rm -f /etc/udev/rules.d/70-persistent-net.rules
2. reboot ubuntu


於 VMware 複製 Ubuntu Image 後要做的修改
1. 修改 Host Name 設定 : 改 /etc/hostname 中的電腦名稱即可
2. 修改 Hosts 設定 : 改 /etc/hosts 中的電腦名稱
3. reboot 重新開機


2009年9月24日 星期四

發表新款 ARM-W90P950( NUC950 ) BSP─ 一款全新 ARM9 W90P950( NUC950 ) CPU 教學開發板

最新的 ARM9 W90P9xx( NUC9xx ) 系列 CPU 的教學開發板,打樣生產第一板^^,包含 W90P950( NUC950 ) 核心板及豐富功能的母板,還有外接 7" LCD。這個教學板的 linux 核心與相關的驅動程式及 BSP 正趕工中^^。


尚有學員提到 ARM 11 開發板,目前OK。但我尚需做完整的文件,請稍候....大家一定會看得到。 有關 ARM-W90P950( NUC950 ) EVB Spec 如下( PS 這一款開發板的 介面 該算是 ARM9 等級最好最優的一個了 ):



ARM-W90P950( NUC950 ) EVB 硬體規格


1.中央處理器(CPU):Winbond's ARM926EJS-based W90P950( NUC950 ),速度200MHz


2.外部記憶體:  記憶體:64M Byte SDRAMNOR Flash4MByteNand Flash:32MByte記憶體


3.串列埠:  2個全雙工非同步串列介面、  1 IRDA 紅外線資料通訊介面


4.網路介面:一個10M/ 100M標準網路介面


5.USB介面:一個USB 1.1/2.0 Hign/Full/Low Speec Host Controller、一個USB 2.0 High/Full Speed Device Controller


6.音效介面:AC97音效CODEC,支援身歷聲音樂播放、錄音,一個音效輸出,另有音效輸入介面可接麥克風


7.儲存卡介面:一個SD/MMC卡介面


8.視訊和觸控螢幕介面:系統平臺預設7英寸TFT液晶螢幕,附觸控功能,支援黑白、4色灰階、16色灰階、256色、64K色、全彩,螢幕解析度可達到800×600圖元


9.RTC時鐘:晶片內RTC即時時鐘


A.JTag介面:一個20Pin標準JTAG介面,支援ADS1.2Jtag晶片燒寫


B.電源介面:CPU單獨使用兩組高效率開關電源分別為內核和IO供電,穩定可靠


C.豐富的 IO 介面


  1. LED*8 + 4 12 LED


  2. KEY*8+4 鍵共 12 個按鍵、


  3. SEG7*3


  4. STEP MOTOR OUT 驅動*4


  5. ADC *1


  6. 字元型LCD 16*2 一個


  7. PWM OUT*2


  8. SPI & I2C *1


D. IO 擴充介面


  教學板上拉出有1.位址線、2.資料線、3.控制介面及5V3.3V電源、地線等使用者擴充可能用到的接腳


 


而有關 ARM-W90P950( NUC950 ) EVB 軟體支援的規格,我會寫在該 BSP 的文件內^^



 


2009年7月4日 星期六

ARM7、ARM9和ARM11系列的出貨量比例(53%,、44% 和 3%):摘錄自 ARM RealView開發工具官方網站

在 ARM realview 官網、及相關網站( 如 電子零件貿易網: http://news.ic-trade.com/doc/10399_1.aspx )所發佈的一篇新聞,主題是:ARM發佈截止至2008年9月30日的 2008年第三季度未審計財務報告,在其內的第七段報導了ARM7、ARM9和ARM11系列的出貨量市佔率,報導中說『得益于在汽車電子、藍牙、數碼消費產品、微控制器、記憶體(HDD和快閃記憶體)以及Wi-Fi等應用領域的增長,2008年第三季度ARM合作夥伴所報告的處理器出貨量與去年同期相比出現強勁增長,達到了10億,比2007年第三季度增長了44%。其中,ARM7、ARM9和ARM11系列的出貨量分別占到總出貨量的53%,、44% 和 3%。』


這個訊息說明了,你會ARM7的相關技術可能比會ARM9的相關技術~好~找~工~作~喔~^^。


這訊息同時也讓我聯想到,有一群人會寫ARM9系列具MMU功能的嵌入式LINUX程式,但一碰到ARM7系列不具MMU功能的嵌入式LINUX程式,就不會寫了。


這實在讓人傻眼@@,待續... ... ...


FPGA Verilog 的學習經驗,提供給要入門的新手

今天簡單說說 FPGA Verilog 的學習經驗,提供給要入門的新手: 1.對自己寫的FPGA Verilog程式,所生成的數位電路要心中有數。 這一點個人認為很重要,就正如寫 C語言,心中要能生成對應的組合語言一樣,我是這樣要求自己的。 雖然 FPGA Verilog語言...