導航:首頁 > 編程系統 > s3c2440linux移植

s3c2440linux移植

發布時間:2023-04-18 10:28:48

『壹』 linux 驅動移植,在ubuntu裡面編譯好之後還應該做什麼,我要把這個驅動放到S3C2440上,makefile應該怎麼改

1, 首先你要有s3c2440 上的linux源碼。
2, 把那個源碼解壓 tar jxvf xxx.tar.bz2
3, 在Makefile中 make -C 後面緊跟的目錄改成 解壓所得的目錄。

『貳』 使用的開發環境是 s3c2440開發板。嵌入式linux和qt已經移植好了 但是現在需要使用在qt中顯示arm io數據

IO需要編寫GPIO驅動程序(實現init, exit , probe ,release, open , read, write, ioctl等file operations),LINUX系統識別為設備並創建設備文件在/dev目錄中,您的QT應用程序內中調用IO設備(通過容open(), read(), write(), ioctl(), close()等API),然後通過QT界面響應給用戶。

『叄』 我是天嵌s3c2440的板子,現在Linux移植,一直按廠家手冊做的,可是make menuconfig的時候總是出現如下錯誤

/bin/sh: line 1: gcc: command not found
注意提示,是 gcc 這個命令未找到,而不是 arm-linux-gcc 這個命令未找到。
而且再看第一行提示
HOSTCC scripts/basic/fixdep
這行裡面的 HOSTCC ,HOST 一般對於 Linux 來說是本地的東西意思,也就是說這行用的是當前系統使用的 cc (這個 cc 是 C Compiler 的意思,gcc 命令是 GNU Compiler Collection 的 cc )。也就是說,當前系統的 gcc (一般習慣下沒有前綴的 gcc 就是本地 GCC )沒有找到。

所以充分表明你根本不會 Linux 就去弄嵌入式……

『肆』 誰會嵌入式msql或sqllite資料庫移植啊,平台是s3c2440,linux

嵌入式櫻返平台三星 s3c2440上linux-2.6.12下移絕孫植dhcp伺服器過程,非常詳細,本並頌鏈人一步一步的做的,移植成功可用。-Samsung S3C2440 embedded platform on linux-2.6.12 transplantation under the dhcp server process, very detailed, step by step I make, and transplantation can be used successfully.

『伍』 請問下大家,linux下qt creator寫的程序怎麼移植到開發板s3c2440上運行呢.

先保證Qt能跑起來,寫一個最簡單的例子,如果能跑,再考慮下一步。

先考慮不帶UI的,嵌入式GUI和PC有差別。

『陸』 s3c2440移植linux內核2.6.22怎麼樣配置

移植步驟:
1.修改根目錄的Makefile中的ARCH=arm,CROSS-COMPILE=arm-linux-
2.在arch/arm/mach-s3c2440/mach-smdk2440.c中,將163行的s3c24xx_init_clocks(16934400)改為s3c24xx_init_clocks(12000000)。
3.修改arch/arm/tools/mach-types中379行的362改為

『柒』 S3C2440的開發板能移植android系統嗎

可以,首先移植linux內核,然後移植android
移植linux時注意使用android支持的內核
linux默認支持2440,所以第一步應該不是很難
不過我也沒試過,純屬YY

『捌』 嵌入式Linux下移植vsftpd伺服器

在源正/如早etc/雹橡悔hosts.allow文件中"vsftpd: all:deny"改成「vsftpd: All:allow」

『玖』 如何將linux2.6.38內核移植到TQ2440

移植步驟:
1.修改根目錄的Makefile中的ARCH=arm,CROSS-COMPILE=arm-linux-
2.在arch/arm/mach-s3c2440/mach-smdk2440.c中,將163行的s3c24xx_init_clocks(16934400)改為s3c24xx_init_clocks(12000000)。
3.修改arch/arm/tools/mach-types中379行的362改為168,因為uboot中定義的機器碼是168.
4.修改arch/arm/boot/中的Makefile文件,在58行添加@cp -f arch/arm/boot/zImage zImage.bin,實現把生成的zImage文件復制到內核源碼根目錄下。
5.在根目錄的Makefile的1164行添加rm -f zImage.bin,使得在執行make distclean在清除產生的文件的同時,把內核根目錄下的zImage也清除。
6.修改arch/arm/plat-s3c24xx/common-smdk.c中111行的static struct mtd_partition smdk_default_nand_part[]的nandflash分區為:
[0] = {
.name = "Andy_uboot",
.offset = 0x00000000,
.size = 0x00040000,
},
[1] = {
.name = "Andy_kernel",
.offset = 0x00200000,
.size = 0x00200000,
},
[2] = {
.name = "Andy_yaffs2",
.offset = 0x00400000,
.size = 0x0FB80000,
}
7.修改drivers/mtd/nand/s3c2410.c中的839行為chip->ecc.mode=NAND_ECC_NONE;
8.修改arch/arm/mach-s3c2440/mach-smdk2440.c中100行為.ulcon = 0x03。
9.在drivers/serial/samsung.c的51行添加
#include
#include
在433行添加:
if (port->line == 2) {
s3c2410_gpio_cfgpin(S3C2410_GPH(6), S3C2410_GPH6_TXD2);
s3c2410_gpio_pullup(S3C2410_GPH(6), 1);
s3c2410_gpio_cfgpin(S3C2410_GPH(7), S3C2410_GPH7_RXD2);
s3c2410_gpio_pullup(S3C2410_GPH(7), 1);
}
10.用git工具下載最新的yaffs2源代碼
具體為在終端輸入git clone git://www.aleph1.co.uk/yaffs2下載最新的yaffs2,下
載完成給內核打補丁,進入yaffs目錄,執行
./patch-kernel.sh c m opt/Andy/linux-2.6.38(以自己的內核目錄為准),其中的c代表復制,m代表復合類型。
11.用make menuconfig配置linux內核。
12.執行make zImage,將生成的zImage.bin下載到TQ2440。
13.製作文件系統。
解壓busybox-1.18.4.tar.bz2,修改busybox-1.18.4中的Makefile,在164行和190行分別修改為CROSS-COMPILE=arm-linux-和ARCH=arm。執行make,然後在執行make install。將生成_install復制到根目錄,添加文件系統文件,用天嵌提供的mkyaffs2image生成root.bin的可執行文件,下載到開發板。
14.啟動開發板,列印信息如下:
Start Linux ...
Copy linux kernel from 0x00200000 to 0x30008000, size = 0x00200000 ... Copy Kernel to SDRAM done,NOW, Booting Linux......
Uncompressing Linux... done, booting the kernel.
Linux version 2.6.38-Andy (root@Andy) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-176) ) #15 Fri Apr 8 20:21:42 CST 2011
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
CPU: VIVT data cache, VIVT instruction cache
Machine: Andy's TQ2440 development board!
ATAG_INITRD is deprecated; please update your bootloader.
Memory policy: ECC disabled, Data cache writeback
CPU S3C2440A (id 0x32440001)
S3C24XX Clocks, Copyright 2004 Simtec Electronics
S3C244X: core 400.000 MHz, memory 100.000 MHz, peripheral 50.000 MHz
CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
Kernel command line: noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0
PID hash table entries: 256 (order: -2, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 64MB = 64MB total
Memory: 60896k/60896k available, 4640k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xffc00000 - 0xffe00000 ( 2 MB)
vmalloc : 0xc4800000 - 0xf6000000 ( 792 MB)
lowmem : 0xc0000000 - 0xc4000000 ( 64 MB)
moles : 0xbf000000 - 0xc0000000 ( 16 MB)
.init : 0xc0008000 - 0xc0025000 ( 116 kB)
.text : 0xc0025000 - 0xc0399000 (3536 kB)
.data : 0xc039a000 - 0xc03bac40 ( 132 kB)
SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:85
irq: clearing pending ext status 00080000
irq: clearing subpending status 00000003
irq: clearing subpending status 00000002
Console: colour mmy device 80x30
console [ttySAC0] enabled
Calibrating delay loop... 199.47 BogoMIPS (lpj=498688)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
gpiochip_add: gpios 288..303 (GPIOK) failed to register
gpiochip_add: gpios 320..334 (GPIOL) failed to register
gpiochip_add: gpios 352..353 (GPIOM) failed to register
NET: Registered protocol family 16
S3C2440: Initialising architecture
S3C2440: IRQ Support
S3C24XX DMA Driver, Copyright 2003-2006 Simtec Electronics
DMA channel 0 at c4808000, irq 33
DMA channel 1 at c4808040, irq 34
DMA channel 2 at c4808080, irq 35
DMA channel 3 at c48080c0, irq 36
S3C244X: Clock Support, DVS off
bio: create slab at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
s3c-i2c s3c2440-i2c: slave address 0x10
s3c-i2c s3c2440-i2c: bus frequency set to 97 KHz
s3c-i2c s3c2440-i2c: i2c-0: S3C I2C adapter
Advanced Linux Sound Architecture Driver Version 1.0.23.
cfg80211: Calling CRDA to update world regulatory domain
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered udp transport mole.
RPC: Registered tcp transport mole.
RPC: Registered tcp NFSv4.1 backchannel transport mole.
msgmni has been set to 118
io scheler noop registered (default)
s3c2440-uart.0: ttySAC0 at MMIO 0x50000000 (irq = 70) is a S3C2440
s3c2440-uart.1: ttySAC1 at MMIO 0x50004000 (irq = 73) is a S3C2440
s3c2440-uart.2: ttySAC2 at MMIO 0x50008000 (irq = 76) is a S3C2440
loop: mole loaded
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c24xx-nand s3c2440-nand: Tacls=2, 20ns Twrph0=6 60ns, Twrph1=2 20ns
s3c24xx-nand s3c2440-nand: NAND ECC disabled
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)
NAND_ECC_NONE selected by board driver. This is not recommended !!
Scanning device for bad blocks
Bad eraseblock 62 at 0x0000007c0000
Bad eraseblock 1435 at 0x00000b360000
cmdlinepart partition parsing not available
Creating 3 MTD partitions on "NAND":
0x000000000000-0x000000040000 : "Andy_uboot"
0x000000200000-0x000000400000 : "Andy_kernel"
0x000000400000-0x00000ff80000 : "Andy_yaffs2"
dm9000 Ethernet Driver, V1.31
Now use the default MAC address: 10:23:45:67:89:ab
eth0: dm9000e at c4810000,c4814004 IRQ 51 MAC: 10:23:45:67:89:ab (EmbedSky)
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
usb usb1: New USB device found, idVendor=1d6b, idProct=0001
usb usb1: New USB device strings: Mfr=3, Proct=2, SerialNumber=1
usb usb1: Proct: S3C24XX OHCI
usb usb1: Manufacturer: Linux 2.6.38-Andy ohci_hcd
usb usb1: SerialNumber: s3c24xx
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver usbserial
usbserial: USB Serial Driver core
USB Serial support registered for pl2303
usbcore: registered new interface driver pl2303
pl2303: Prolific PL2303 USB to serial adaptor driver
s3c2410_udc: debugfs dir creation failed -19
mousedev: PS/2 mouse device common for all mice
S3C24XX RTC, (c) 2004,2006 Simtec Electronics
s3c-rtc s3c2410-rtc: rtc disabled, re-enabling
s3c-rtc s3c2410-rtc: rtc core: registered s3c as rtc0
i2c /dev entries driver
S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
ALSA device list:
No soundcards found.
TCP cubic registered
lib80211: common routines for IEEE802.11 drivers
s3c-rtc s3c2410-rtc: setting system clock to 2000-01-02 00:47:19 UTC (946774039)
yaffs: dev is 32505858 name is "mtdblock2" rw
yaffs: passed flags ""
VFS: Mounted root (yaffs filesystem) on device 31:2.
Freeing init memory: 116K
Please press Enter to activate this console.
移植過程中產生的問題及其解決方法將在下一節說明。還有一些驅動沒有移植。繼續努力!

在移植linux2.6.38過程中,遇見了很多的問題,通過在網上查閱相關信息和在圖書館不停的查閱資料,終於成功了。下面將移植過程中產生的問題及其解放方法與大家共享一下。
1、編譯內核時yaffs2出現unknown field 'clear_inode' specified in initializer的
錯誤,原因是所下載的yaffs2不支持linux2.6.38.
解決方法:最新的yaffs2採用git發布,所以採用git工具下載最新的yaffs2源代碼。
具體為在終端輸入git clone git://www.aleph1.co.uk/yaffs2下載最新的yaffs2,下
載完成給內核打補丁,進入yaffs目錄,執行
./patch-ker.sh c m opt/Andy/linux-2.6.38(以自己的內核目錄為准),其中的c代表復制,m代表復合類型。

2、移植linux內核到開發板後,出現data abort的錯誤,錯誤原因為內核大小超過了2M,
天嵌的Uboot只分配給內核2M的空間,所以報錯。
解決方法:精簡內核,使其小於2M。或者修改Uboot,是內核大小大於2M。
所以個人認為天嵌的Uboot值得改進,下一步我將移植Uboot,用自己的Uboot就不存在這個問題了。嘿嘿

3.移植內核時,出現Uncompressing Linux... done, booting the kernel後,系統不能啟動,網上好多人說是因為在menuconfig選項中的Boot options中的Default kernel command string中沒有設置noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0 rootfs=yaffs2 rw。其實不用設置這個參數也可以,我採用在內核配置文件中將Kernel Feature/Provide old way to pass kernel parameters選上就行了,因為天嵌用的bootloader太老了,從列印的內核信息中就可以看出。(ATAG_INITRD is deprecated; please update your bootloader.)

4.內核啟動時,出現Failed to execute /linuxrc的錯誤,原因是:
(1)文件系統中沒有包含linuxrc的可執行文件。在文件系統中添加linuxrc就可完成linux的啟動。
(2)在/driver/mtd/nand/s3c2410.c中將chip->ecc.mode = NAND_ECC_SOFT;改為chip->ecc.mode = NAND_ECC_NONE;並在配置內核中將Samsung S3C NAND Hardware ECC選項刪掉。
這個問題糾結了我好久,我遇見這個問題後,先嘗試用nfs掛載,能夠掛載上,所以我確定肯定是nandflash出了問題了,以為nandflash壞了(因為被我不停的擦寫,嘿嘿),後來用天嵌自帶的鏡像試了是好的,我就明白了,估計是我的nand驅動有問題了,仔細檢查驅動,發現內核配置中的Samsung S3C NAND Hardware ECC沒有去掉,,一個小小的問題折磨了我這么久。所以一定一定要仔細啊。

5.編譯串口驅動是出現error: implicit declaration of function 's3c2410_gpio_cfgpin'的錯誤,是因為內核版本2.6.38的內核定義s3c2410_gpio_cfgpin是在linux/gpio.h中,所以添加#include 後即可。

6.編譯串口驅動是出現error: 'S3C2410_GPH6' undeclared (first use in this function)是因為在內核版本2.6.38的內核定義s3c2410_gpio_cfgpin的函數變數採用的是S3C2410_GPH(6),而非S3C2410_GPH6,將其改為S3C2410_GPH(6)即可解決問題。

7.linux內核2.6.38的串口程序samsung.c在/driver/tty/serial中。這里與原來的內核版本不一致。這個要注意,內核版本改了,介面也改了,我當時找不到samsung.c,然後通過find命令一看,暈,原來在這裡面。

8.在添加yaffs2內核支持時,找不到Kconfig,復制Yaffs2文件夾中的Kconfig_muti到linux內核的fs/yaffs2中,並將Kconfig_muti修改為Kconfig。

『拾』 嵌入式微處理器s3c2440應需要用到哪些軟體

一、針對於裸機開發(即是當單片機使用,不會在上面跑系統如linux等) 1.集成開發工具ADS1.2,可以編譯,調試,以及在線調試功能。ADS已經沒有更新了,還有比ADS好用的是KEILMDK和IAR,但是好像一些書上和培訓機構的教程都是使用的ADS講解的,所以推薦ADS。新手不推薦使用KEIL和IAR開發工具。但有人帶領和自己喜歡琢磨的,可以去嘗試,自己配置環境參數。 2.在線調試工具驅動軟體:USB介面的JLINK模擬器。 3.程序文件編輯工具,有很多我推薦幾款,自己選擇喜歡的吧。其實ADS也是可以編輯的文件的,只是編輯能很差,要是文件大了的話,不怎麼方便。 a)notepad++整個安裝文件很小,界面比較簡單,安裝插件後功能很強大,推薦一般新手使用。 b)EditPlus和上面的差不多。 c)UltraEdit安裝文件相對大一些,功能很強大,界面相對復雜一點,不推薦新手使用。 d)Sublimetext小巧方便,很強大編譯能力,有很多有趣的功能,推薦喜歡自己琢磨的軟體功能的人去玩,一般沒心思的人就不要去搞了,但是界面和文本配色很漂亮。 e)SourceInsight超級強大的查看工程代碼的工具,但是文本編輯功能很差,小程序的話,就不推薦使用它了,但是如果稍稍大一點的工程,使用它是很爽的,即使編輯功能差都是可以接收的。(本人做嵌入式開發(STM32、K22)在用) 4.串口調試工具和串口監視工具,網路上搜一下很多的。 a)串口調試助手:可以和你設備(S3C2440)上的串口進行交互,發送和接收數據。 b)CommMonitor:監視工具很好用的,可以看到串口上所有發送和接收的數據 5.畫和查看原理圖的工具: a)Altium.Designer推薦使用,我們大學教的這個 b)PADS我們公司用的這個 c)protel比較老了,以前的工程師可以還在用 哪個好的話,除了PROTEL差一點,其餘兩種都還可以,根據個人喜好吧,個人覺得AD好用些,可能是先入為主的緣故。 二、針對於嵌入式Linux開發,需要增加下面的工具 1.vmwareworkstation:這是必須的,叫虛擬機,可以再上安裝各種操作系統(WINXP788.1,Linux(Ubuntu,Redhat,Fedora)),在這里虛擬機一般安裝Linux,方便與你本身電腦安裝的系統通信。除非你一直使用的是Linux系統,就可以不需要,但是不建議,因為有些軟體在Linux系統上不兼容。 2.Linux系統:Ubuntu,Redhat,Fedora,三種比較常用,具體使用哪個,新手還是根據你的教程里使用的,使用稍微熟悉之後,可以試試別的Linux系統,個人推薦使用Ubuntu. 3.DNW:這是用於USB下載,可下載引導程序(Bootloader),移植的Linux鏡像(Image.bin),生成的系統文件,或者應用程序等,到S3C2440開發板上。 4.SecureCRT:這是一個比較好用的支持許多協議的遠程登錄UNIX或者Linux伺服器的工具,當然也可以當做串口顯示的工具,一些教程上就是使用這個來作為S3C2440的串口顯示,用來進行人機交互。 5.還有很多在Linux下需要的工具,如交叉編譯工具等這些的話根據教程來吧,裡面會說。 有了以上的工具,對於一個初學者基本可以就可以了。 聲明:本人不是大神,也是初學不久,只是買了開發板,網上找了很多的教程和相關資料,做過一個嵌入式Linux的小項目。工具基本都是使用以上提到的工具,有些是自己亂找的但是個人覺得比較好用的工具。希望能幫到你。 以上的僅供參考,如有疏漏和不足之處,請屈尊示下,如果正確,本人一定修改,並且深表感謝! 其實大部分的工具均可在網路上搜索下載,但是為了部分賴人,以下是部分工具的下載

閱讀全文

與s3c2440linux移植相關的資料

熱點內容
隱藏網路為什麼別人可以連我不行 瀏覽:355
超級終端發送文件超時 瀏覽:24
文件多少m有什麼意思 瀏覽:63
microsoftword2010 瀏覽:773
國務院通信大數據行程卡在哪裡 瀏覽:581
列印機和電腦數據線連好怎麼操作 瀏覽:877
iphone打開html文件 瀏覽:63
java操作excel之poi 瀏覽:700
java集合同步 瀏覽:861
軟工大數據軟考考什麼 瀏覽:190
受控體系文件的封面有什麼內容 瀏覽:778
夢幻錦衣是哪個文件夾 瀏覽:811
raid模式不能黑蘋果 瀏覽:859
如何優化網站推廣方案 瀏覽:40
編程怎麼入門去極客時間 瀏覽:504
查看oracle資料庫字元集編碼 瀏覽:658
pscc恢復文件 瀏覽:245
釘釘怎麼上網路直播課 瀏覽:595
怎麼用手機qq掃描文件在哪裡 瀏覽:17
微信瓶子怎麼提示用完了 瀏覽:288

友情鏈接