s3c2440支持ftp嗎
『壹』 ARM9 S3C2440 做什麼用
嵌入式晶元,一般用在手機上
『貳』 嵌入式底層軟體開發的目錄
1 第1章 ARM匯編編程基礎 9
1.1 ARM CPU寄存器 9
1.1.1 普通寄存器R0 – R15 10
1.1.2 狀態寄存器CPSR與SPSR 11
1.1.3 流水線對PC值的影響 13
1.2 基本定址方式與基本指令 15
1.2.1 最常見定址方式精解 15
1.2.2 最常見指令精解 16
1.3 ARM匯編偽操作 18
1.3.1 匯編偽操作在匯編程序中的使用範例 18
1.3.2 最常見匯編偽操作精解 19
1.3.3 匯編偽操作列表 21
1.4 ADS開發環境的使用 23
1.4.1 在ADS中進行裸機程序的編輯、編譯、運行 24
1.4.2 在AXD中進行裸機程序調試的方法與步驟 32
1.5 RealView MDK開發環境的使用 40
1.5.1 在MDK開發環境下編寫裸機程序 40
1.5.2 MDK調試裸機程序的方法與步驟 55
1.6 其他常見定址模式與常見指令 58
1.6.1 其他常見定址模式(基址定址、多寄存器定址、堆棧定址、寄存器移位定址、相對定址) 58
1.6.2 其他常見指令(訪存指令、數據處理指令、乘法指令) 62
2 第2章 ARM編程進階 65
2.1 ARM匯編偽指令 65
2.1.1 精解ldr偽指令 65
2.1.2 精解adr 67
2.1.3 精解adrl偽指令 68
2.1.4 nop偽指令 69
2.2 ATPCS與混合編程 70
2.2.1 ATPCS規則精解 70
2.2.2 精解C和ARM匯編程序間的相互調用 74
2.3 裸機硬體的控制方法與常式 76
2.3.1 建立真實硬體的開發和調試環境 77
2.3.2 軟體控制(驅動)硬體的編程原理 90
2.3.3 裸機硬體控製程序實例 91
2.3.4 啟動常式 96
2.4 看門狗定時器(Watchdog) 102
2.4.1 看門狗定時器的用途 103
2.4.2 看門狗工作原理 104
2.4.3 看門狗實驗 106
2.5 系統時鍾 107
2.5.1 系統工作時鍾頻率 107
2.5.2 時鍾驅動實驗 112
2.6 SDRAM內存 116
2.6.1 S3C2440存儲器地址段(Bank) 117
2.6.2 SDRAM內存工作原理 119
2.6.3 SDRAM的讀操作 123
2.6.4 SDRAM預充電操作 124
2.6.5 SDRAM突發操作 124
2.6.6 SDRAM寫操作 125
2.6.7 SDRAM的刷新 126
2.6.8 內存驅動實驗 130
2.7 UART串口 134
2.7.1 非同步通信和同步通信 135
2.7.2 數據的串列和並行通信方式 135
2.7.3 數據通信傳輸模式 136
2.7.4 S3C2440 UART控制器 137
2.7.5 S3C2440 UART串口工作原理 138
2.7.6 UART串口驅動實驗 147
3 第3章 ARM體系結構 151
3.1 ARM處理器工作模式 151
3.1.1 ARM處理器不同模式下寄存器 152
3.1.2 ARM處理器模式切換(含MRS,MSR指令) 153
3.2 ARM處理器異常處理 155
3.2.1 異常分類 155
3.2.2 異常發生的硬體操作 156
3.2.3 異常返回地址 157
3.2.4 異常向量表 158
3.2.5 異常處理的返回 160
3.3 S3C2440系統中斷 161
3.3.1 中斷的產生-中斷源 162
3.3.2 中斷優先順序 164
3.3.3 中斷控制相關寄存器 166
3.3.4 系統中斷流程 169
3.3.5 按鍵控制LED燈實驗 171
3.4 semihosting與硬體重定向 179
3.4.1 semihosting半主機調試 179
3.4.2 硬體重定向 184
3.5 系統調用與軟體中斷SWI的實現 190
3.5.1 系統調用 190
3.5.2 軟體中斷 191
3.5.3 軟中斷處理 192
3.5.4 led系統調用實驗 193
3.6 進程切換的實現 199
3.6.1 進程 199
3.6.2 進程式控制制塊PCB 200
3.6.3 進程創建 201
3.6.4 進程隊列 201
3.6.5 進程調度(schele) 202
3.6.6 上下文切換 205
3.7 MMU與內存保護的實現 208
3.7.1 存儲管理單元MMU 209
3.7.2 Cache 221
3.7.3 CP15協處理器 223
3.8 實戰:小型多任務操作系統miniOS的實現 227
3.8.1 miniOS代碼分析 227
3.8.2 miniOS應用程序介面 261
3.8.3 miniOS應用程序系統調用介面 262
4 第4章 嵌入式linux軟體開發環境搭建 265
4.1 體驗嵌入式linux系統 265
4.2 Linux操作系統安裝 266
4.2.1 在Window上安裝虛擬機 266
4.2.2 在虛擬機上安裝Linux操作系統ubuntu9.10 277
4.3 在ubuntu9.10中安裝基本的開發環境 280
4.4 ubuntu9.10上網路服務的安裝與配置 281
4.4.1 設置vmware網路 282
4.4.2 安裝、配置和使用ftp服務 286
4.4.3 安裝、配置nfs服務 286
5 第5章 建構bootloader 287
5.1 准備工作 287
5.1.1 嵌入式Linux系統概述 287
5.1.2 構建交叉編譯工具鏈 288
5.1.3 bootloader概述 289
5.2 深入剖析U-boot代碼 293
5.2.1 安裝和使用源代碼閱讀工具Source Insight 293
5.2.2 u-boot的編譯初步 295
5.2.3 分析u-boot的第1階段代碼(cpu/arm920t/start.S) 297
5.2.4 分析u-boot的第2階段代碼 301
5.2.5 繼續移植、編譯u-boot 303
5.2.6 u-boot常用命令使用簡介 307
5.2.7 u-boot命令實現框架的分析 310
5.2.8 u-boot引導Linux操作系統的過程分析 315
5.2.9 讓u-boot支持從usb slave介面獲得數據 320
6 第6章 建構嵌入式Linux內核 322
6.1 Linux內核簡介 322
6.1.1 Linux內核版本歷史 322
6.1.2 內核源碼目錄結構 322
6.1.3 Linux內核構造系統簡介 323
6.2 移植、裁減及配置Linux內核到s3c2440開發板 324
6.2.1 體驗Linux內核配置、編譯與使用 324
6.2.2 為S3C2440移植內核 327
6.2.3 配置並裁減內核 328
6.2.4 運行內核並驗證內核被配置的功能 331
6.3 內核Kconfig與Makefile文件分析 333
6.3.1 內核構造系統簡介 333
6.3.2 Kconfig文件精解 333
6.3.3 .config文件說明 335
6.3.4 Makefile文件精解 335
6.3.5 實戰:修改Kconfig和Makefile,完成向內核中添加新的功能組件——網卡、音效卡、LCD、觸摸屏驅動 336
7 第7章 建構嵌入式Linux文件系統 345
7.1 嵌入式Linux文件系統簡介 345
7.1.1 嵌入式文件系統概述 345
7.1.2 MTD設備與Flash文件系統簡介 346
7.1.3 嵌入式Linux系統中的tmpfs文件系統 347
7.2 詳解製作根文件系統 349
7.2.1 FHS標准介紹 349
7.2.2 編譯/安裝busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目錄 350
7.2.3 利用交叉編譯工具鏈,構建/lib目錄 351
7.2.4 手工構建/etc目錄 353
7.2.5 手工構建最簡化的/dev目錄 354
7.2.6 使用啟動腳本完成/proc、/sys、/dev、/tmp、/var等目錄的完整構建 355
7.2.7 製作根文件系統的jffs2映像文件 359
7.3 建構嵌入式Linux應用程序系統 360
7.3.1 輔助處理工具的移植 360
7.3.2 mp3播放器 madplay的移植 363
7.3.3 主要網路伺服器的移植與使用 366
7.3.4 資料庫程序的移植與使用 371
7.4 建構GUI系統 374
7.4.1 移植tslib庫 374
7.4.2 移植qtopia 375
8 第8章 Linux驅動程序開發基礎 378
8.1 Linux設備驅動程序簡介 378
8.1.1 設備驅動分類和內核模塊 379
8.1.2 設備文件和設備驅動 380
8.1.3 內核模塊的編譯和使用 381
8.2 字元設備驅動基本編程 388
8.2.1 字元設備驅動體驗 388
8.2.2 實現字元設備驅動的工作 388
8.3 驅動程序中的並發控制方法 401
8.3.1 並發控制原理簡介 401
8.3.2 信號量的編程實戰 402
8.3.3 自旋鎖的編程實戰 404
8.3.4 Linux內核提供的其他並發控制方法 408
8.4 驅動程序中的阻塞與非阻塞編程 409
8.4.1 體驗阻塞I/O 409
8.4.2 如何在驅動程序中實現阻塞I/O 411
8.4.3 體驗非阻塞I/O 413
8.4.4 如何在驅動程序中實現非阻塞I/O 415
8.5 字元設備驅動程序對一些高級特性的實現 416
8.5.1 non-seekable的實現 416
8.5.2 select的實現 417
9 第9章 Linux字元設備驅動開發實戰 422
9.1 IO內存與硬體通信 422
9.1.1 驅動中的內存分配 422
9.1.2 使用 I/O 埠地址空間與硬體進行通信的內核API介紹 423
9.1.3 使用 I/O 內存地址空間與硬體進行通信的內核API介紹 424
9.1.4 通過I/O內存驅動硬體的實戰——LED燈驅動 425
9.1.5 驅動程序對ioctl的規范實現 433
9.2 內核misc設備架構分析 435
9.2.1 定義全局變數 435
9.2.2 注冊主設備號為10的misc設備 436
9.2.3 導出內核API —— misc_register函數 437
9.2.4 實施乾坤大挪移的misc設備open函數 438
9.2.5 導出內核API —— misc_deregister函數 440
9.3 watchdog驅動 441
9.3.1 相關概念 441
9.3.2 Watchdog硬體結構分析 443
9.3.3 Watchdog驅動的初始化和卸載 443
9.3.4 探測函數watchdog_probe的實現 444
9.3.5 實現misc設備中對設備文件的操作 447
9.3.6 Watchdog平台驅動的設備移除、掛起和恢復介面函數的實現 450
9.3.7 測試watchdog驅動 451
9.4 內核編碼規范與風格 452
9.4.1 縮進、長行、{}與空格的放 453
9.4.2 變數和函數 453
9.4.3 注釋.macros和enums 454
9.4.4 快樂使用內核提供的實現常用功能的宏 455
10 第10章 Linux驅動中的中斷編程 456
10.1 驅動程序調測方法與技巧 456
10.1.1 利用printk 456
10.1.2 詳解OOP消息 457
10.1.3 利用strace 461
10.1.4 利用內核內置的hacking選項 462
10.1.5 其他調測方法簡介 465
10.2 驅動程序中的中斷處理 466
10.2.1 中斷簡述 466
10.2.2 驅動程序中進行中斷處理涉及到的最基本的內核API 466
10.2.3 驅動程序進行中斷處理的實例代碼分析 467
10.2.4 其他關於中斷的內核API 469
10.3 內核時間與內核定時器 470
10.3.1 內核中如何記錄時間 470
10.3.2 內核定時器API 471
10.3.3 內核定時器與內核時間的應用案例——按鍵消抖 471
10.3.4 如何在內核中實現延時 474
10.4 中斷頂半部與底半部 474
10.4.1 區分和使用中斷頂半部與底半部的原因 474
10.4.2 tasklet機制與編程實例 475
10.4.3 workqueue機制與編程實例 478
10.4.4 tasklet與workqueue的區別和不同應用環境總結 485
10.5 Linux中斷處理系統的架構與共享中斷 486
10.5.1 裸機程序中的中斷編程與有操作系統下的中斷編程的區別 486
10.5.2 Linux中斷處理系統的架構 487
10.5.3 關於共享中斷的說明 487
10.5.4 共享中斷實例 487
11 第11章 Linux網路設備驅動開發實戰 489
11.1 網路設備驅動基礎 489
11.1.1 體驗網卡驅動 489
11.1.2 網卡驅動的基本知識——2個結構體和5個函數 489
11.1.3 虛擬網卡snull驅動代碼分析 494
11.1.4 網卡驅動的編寫主要內容總結 499
11.2 網路設備驅動實例——cs8900 499
11.2.1 虛擬網卡驅動與真實網卡驅動的主要區別 499
11.2.2 真實網卡驅動的整體框架分析 500
11.2.3 驅動中關於cs8900硬體操作的探討 507
12 第12章 其他重要設備驅動開發實戰 519
12.1 塊設備驅動初步(以ramdisk為例) 519
12.1.1 體驗塊設備驅動 519
12.1.2 塊設備驅動框架介紹 519
12.1.3 塊設備的簡單讀寫實現代碼分析 522
12.1.4 塊設備的高效讀寫實現代碼分析 523
12.1.5 塊設備的其他操作介面fops 526
12.2 LCD驅動 528
12.2.1 LCD裸機驅動 528
12.2.2 幀緩沖(FrameBuffer)設備驅動框架結構 536
12.2.3 LCD驅動實例代碼 542
12.2.4 LCD驅動代碼的主幹結構的總結 555
12.2.5 測試LCD驅動程序 556
12.3 觸摸屏驅動 556
12.3.1 觸摸屏裸機驅動 556
12.3.2 Linux輸入子系統 561
12.3.3 Linux下觸摸屏驅動的實現步驟 564
12.3.4 測試觸摸屏驅動程序 572
12.4 USB驅動初步 572
12.4.1 Linux下4種USB驅動簡介與功能體驗 572
12.4.2 USB介面與規范 574
12.4.3 USB設備驅動基本知識 575
12.4.4 USB設備驅動實例 578
『叄』 急求!!!做一個視頻採集壓縮傳輸方案,用的晶元為SAA7113+MPG440+S3C2440,請問這之間的介面電路怎麼畫
MPG440沒有用過,曾經做過SAA7113+DM9000(網卡晶元)+S3C2440,這個基於Linux操作系統做起來很簡單,可以加個H264壓縮方案為你的項目加分。你用一個ARM9的開發板,自己畫個SAA7113解碼板也不難,和S3C2440的Camera介面對接上就好了,電路就參考SAA7113的Datasheet,很簡單的,不過注意負載電容的選取,手冊上是錯誤,要用20pf以上,否則圖像是黑白的。祝你順利。
『肆』 識別s3c2440開發板的底板包含哪些介面
s3c2440開發板就是個mcu,再加個rf模塊(不會太貴),連到s3c2440開發板的介面上,那就能作一個zigbee的節點了。一個節點有什麼用?有多大用?如果你是想用開發一個設備,如zigbee的遙控器、zigbee燈,那是可以做做了,但你沒有zigbee網路,無法實現rf通訊,無法確認你開發的設備的正確性。所以,要想進入zigbee,得有套件,可以組網,一般至少要有3個節點比較好。協議棧是zigbee晶元廠家提供的,比如ti的Z-stack。許多底層的程序你都不用去設計了,他已做好,給了你許多介面程序,我們只要利用這些介面程序寫寫和應用有關的程序,所以便於開發(當然也不可能一蹴而就,學習Z-stack就是一個比較復雜的過程)。如果想做深層次的實驗、開發等工作,會因為Z-stack的部分底層程序不開源而止步。但對於一般的應用開發來說,個人覺得還是很不錯的一個協議棧。方便開發。
『伍』 ARM S3C2440 CPU 工作原理 及片內地址詳細解釋!謝謝
嵌入式ARM工控板 -- SBC2440-ISamsung S3C2440 單板計算機,支持觸摸屏,2USB,2網卡,SD卡,攝像頭 產品特點:
ARM9 S3C2440 CPU,最高400MHz 板載2MB Nor Flash,64MB Nand Flash 板載64MB Sdram 支持1 x 10/100M 網卡,1 x 10M網卡 支持5 x RS232串口 支持2 x USB,1 x USB Device 支持觸摸屏LCD顯示 支持百萬像素攝像頭 支持音頻介面 支持SD卡存儲 支持實時鍾和看門狗 產品規格簡介[229KB ]快速安裝指南[245KB ]高解析度圖片[109KB JPG] 規格說明:系統 CPUSamsung S3C2440 (ARM920T, 400MHz)存儲 板載 2MB Nor Flash,64MB Nand Flash內存 板載 64MB Sdram看門狗 Watch Dog TimerRTC支持實時時鍾,帶後備電池 I/O和通訊 USB2 x USB 1.1 Host,1 x USB 1.1 Device 串口 5 x RS232串口 (1 標准 DB9 串口和 2 x 3線串口,2個擴展串口TTL輸出)網口 1 x 10/100M 乙太網口, 1 x 10M 乙太網口擴展匯流排 I2C,SPI,PC104,4 x PWMGPIO16 x 通用I/O顯示 顯示介面 支持彩色STN/TFT液晶屏 解析度 320 x 240,640 x 480尺寸 標配3.5寸(320 x 240),選配8.4寸(640 x 480)觸摸屏 4線電阻式觸摸屏 存儲 Flash64MB Nand FlashSD卡 板上提供1個SD/MMC卡座 音效卡 晶元 UDA1341 音頻介面 支持麥克風音頻輸入和音頻輸出 視頻視頻輸入 支持1路CMOS Sensor介面,可接百萬像素CMOS攝像頭 軟體功能:軟體.6sbc_vivi
Xmodem支持 Xmodem 傳輸協議 USB(不提供源代碼)vivi增加 USB 下載功能, 支持USB下載/上傳鏡像功能Kernel 參數支持 kernel 參數設定 硬碟分區支持硬碟分區設定etc.其他Kernel 版本Linux kernel 2.6.13File 系統ROM/CRAM/EXT2/FAT32/NFS/YAFFSDriver中斷&定時器 支持系統中斷&定時器串口5個串口,提供原代碼10M 乙太網 CS890010M/100M 乙太網DM9000USB Host 支持USB 滑鼠, USB 鍵盤, U盤RTC提供源代碼ADCLinux2.6不支持 ADC 驅動AudioUDA1341LEDs Buttons用戶自定義按鈕Language支持多種語言選擇幀緩沖支持幀緩沖SD/MMC提供源代碼LCD支持解析度為240x320, 640x480, 480x272, 800x480 (提供源代碼)IDE不支持源代碼Network protoco& applicationlTCP/IPTCP/IP 協議File 傳輸(FTPclient/server)遠程登陸Telnet 協議Embedded GUI Qt/Embedded WinCE
4.2/5.0 Driver sbc_vivi
(不提供源代碼)vivi增加 USB 下載功能, 支持USB下載/上傳鏡像功能Eboot Ethernet bootloader for wince 串口 5個串口提供驅動 內存 提供Nand Flash 驅動 10M 乙太網 CS8900 USB Host 支持USB鍵盤、滑鼠 USB device LED RTC EINT LCD支持 240x320, 640x480解析度Audio UDA1341(提供源代碼)SD/MMC card(提供源代碼)
『陸』 嵌入式Linux下移植vsftpd伺服器
在/etc/hosts.allow文件中"vsftpd: all:deny"改成「vsftpd: All:allow」
『柒』 TQ2440開發板( S3C2440 )下的 VxWorks nand flash MTD 驅動開發
應該是可以的,其實mtd層也是調用flash本身的驅動然後在tffs文件系統下實現對flash的基本操作,你可以看看Tornado\target\src\drv\tffs下面和你flash比較相似的文件進行修改。nand和nor在做文件系統沒什麼區別。還有,這樣的問題去csdn、tony啊,電子開發網之類的地方逛逛,祝你成功!
『捌』 以s3c2440晶元為核心開發的嵌入式系統,其上電執行時工作在什麼模式下
不管S3C2440的啟動設備是什麼,它都是從0x0000 0000地址開始執行程序的,所不同的是地址的映射不一樣。基於S3C2440的嵌入式系統上電之後,需要首選選擇啟動設備,2440的啟動方式選擇是通過模式引腳OM1和OM0來配置的,如圖1 所示為2440的啟動方式選擇說明:
圖1 S3C2440啟動方式說明
由上圖可知,S3C2440支持兩種啟動模式:NAND和非NAND(這里是Nor Flash),具體採用的方式取決於OM0、OM1兩個引腳的狀態。
OM[1:0所決定的啟動方式
OM[1:0]=00時,處理器從NAND Flash啟動
OM[1:0]=01時,處理器從16位寬度的ROM啟動
OM[1:0]=10時,處理器從32位寬度的ROM啟動。
OM[1:0]=11時,處理器從Test Mode啟動。
由於NAND FLASH是接在NAND FLASH控制器上而不是系統匯流排上,所以沒有在S3C2440A的8個BANK中分配地址空間。如果S3C2440被配置成從Nand Flash啟動,在S3C2440上電後,Nand Flash控制器的會自動的把Nand Flash上的前4K數據搬移到內部SRAM中,也就是所謂的」Steppingstone」, 同時把這段片內SRAM映射到nGCS0片選的空間(即0x00000000)。系統會從這個內部SRAM中啟動,程序員需要完成的工作,就是把最核心的啟動程序放在Nand Flash的前4K中,也就是說,你需要編寫一個長度小於4K的引導程序,作用是將主程序拷貝到RAM (一般是SDRAM)中運行。而在Nand Flash方式啟動的情況下,系統是」看不到」Nor Flash的,因為Nor Flash也是掛在nGCS0上的,而nGCS0的地址空間已經被佔用了。
TQ2440使用的Nor Flash是AMD公司的AM29LV160DB,它是16bit數據位寬的Nor Flash。因此,當選擇從NOR FLASH啟動時,OM1和OM0應該分別是低電平和高電平。此時,NOR FLASH被映射到0x00000000地址(就是nGCS0,這里就不需要片內SRAM來輔助了,而片內SRAM的起始地址還是0x40000000)。 然後2440從0x00000000開始運行(也就是在Nor Flash中運行)。
『玖』 求大神給解釋一下,arm9、tq2440和s3c2440,有點暈
S3C2440是cpu,也就是嵌入式的微處理器,是三星公司開發的一款基於arm9內核的微處理器。arm9是這個晶元的內核,意思是採用arm公司的arm9架構。簡而言之是三星公司根據arm公司提供的arm9架構開發出了一款微處理器晶元。而TQ2440是一個開發板,也就是一個電路PCB板子,裡面除了有S3C2440晶元還包括組成一個最小嵌入式硬體系統的其他部件,如rom、ram、顯示器、網線介面、usb介面等
『拾』 使用的開發環境是 s3c2440開發板。嵌入式linux和qt已經移植好了 但是現在需要使用在qt中顯示arm io數據
IO,不知你說的是何種IO,2440有GPIO,樓上說的就是這個IO的驅動,所GPIO,就是普通IO的意思,相當於單片上的DATA數據口。2440還有i2c,SPI等匯流排型的IO口。i2c,spi的驅動,在linux中已有包含,在程序中,直接讀取相關設備文件即可。GPIO,其實也有了,但自帶的驅動中,僅只有幾個IO的驅動演示,你完全可以參照這個驅動,加入自已所需的GPIO的驅動。