linux在TQ2440上移植9--添加触摸屏

更新时间:2023-04-07 05:56:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

input子系统方式

1、cd linux-2.6.35.3/drivers/input/touchscreen

2、touch smdk2440_ts.c

3、vi smdk2440_ts.c

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

/* For ts.dev.id.version */

#define S3C2410TSVERSION 0x0101

#define WAIT4INT(x) (((x)<<8) | \

S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN |

S3C2410_ADCTSC_XP_SEN | \

S3C2410_ADCTSC_XY_PST(3))

#define AUTOPST (S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | S3C2410_ADCTSC_XP_SEN | \

S3C2410_ADCTSC_AUTO_PST | S3C2410_ADCTSC_XY_PST(0))

static char *s3c2410ts_name = "s3c2410 TouchScreen";

static struct input_dev *dev;

static long xp;

static long yp;

static int count;

//extern struct semaphore ADC_LOCK;

DECLARE_MUTEX(ADC_LOCK);

static int OwnADC = 0;

static void __iomem *base_addr;

static void touch_timer_fire(unsigned long data)

{

unsigned long data0;

unsigned long data1;

int updown;

data0 = ioread32(base_addr+S3C2410_ADCDAT0);

data1 = ioread32(base_addr+S3C2410_ADCDAT1);

updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 &

S3C2410_ADCDAT0_UPDOWN));

if (updown) {

if (count != 0) {

long tmp;

tmp = xp;

xp = yp;

yp = tmp;

/*取4次平均值*/

xp >>= 2;

yp >>= 2;

//DEBUG

//printk("x = %4d, y = %4d",(int)(xp),(int)(yp));

#ifdef CONFIG_SMDK2440_TS_DEBUG

{

struct timeval tv;

do_gettimeofday(&tv);

printk(KERN_DEBUG "T: %06d, X: %03ld, Y: %03ld\n", (int)66457a737fd5360cba1adbe2_usec, xp, yp);

}

#endif

/*上报坐标*/

input_report_abs(dev, ABS_X, xp);

input_report_abs(dev, ABS_Y, yp);

input_report_key(dev, BTN_TOUCH, 1);

input_report_abs(dev, ABS_PRESSURE, 1);

input_sync(dev);

}

xp = 0;

yp = 0;

count = 0;

/* 启动AD 转换*/

iowrite32(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST, base_addr+S3C2410_ADCTSC);

iowrite32(ioread32(base_addr+S3C2410_ADCCON) |

S3C2410_ADCCON_ENABLE_START, base_addr+S3C2410_ADCCON); } else {

count = 0;

input_report_key(dev, BTN_TOUCH, 0);

input_report_abs(dev, ABS_PRESSURE, 0);

input_sync(dev);

iowrite32(WAIT4INT(0), base_addr+S3C2410_ADCTSC);

if (OwnADC) {

OwnADC = 0;

up(&ADC_LOCK);

}

}

}

static struct timer_list touch_timer =

TIMER_INITIALIZER(touch_timer_fire, 0, 0);

static irqreturn_t stylus_updown(int irq, void *dev_id) {

unsigned long data0;

unsigned long data1;

int updown;

if (down_trylock(&ADC_LOCK) == 0) {

OwnADC = 1;

data0 = ioread32(base_addr+S3C2410_ADCDAT0);

data1 = ioread32(base_addr+S3C2410_ADCDAT1);

/*updown ==1, 按下OR 弹起???*/

updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 & S3C2410_ADCDAT0_UPDOWN));

if (updown) {

touch_timer_fire(0);

} else {

OwnADC = 0;

up(&ADC_LOCK);

}

}

return IRQ_HANDLED;

}

static irqreturn_t stylus_action(int irq, void *dev_id)

{

unsigned long data0;

unsigned long data1;

if (OwnADC) {

data0 = ioread32(base_addr+S3C2410_ADCDAT0);

data1 = ioread32(base_addr+S3C2410_ADCDAT1);

xp += data0 & S3C2410_ADCDAT0_XPDATA_MASK;

yp += data1 & S3C2410_ADCDAT1_YPDATA_MASK;

count++;

if (count < 4) {

/* 再一次启动AD转换*/

iowrite32(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST,

base_addr+S3C2410_ADCTSC);

iowrite32(ioread32(base_addr+S3C2410_ADCCON) |

S3C2410_ADCCON_ENABLE_START, base_addr+S3C2410_ADCCON);

} else {

mod_timer(&touch_timer, jiffies+1);

iowrite32(WAIT4INT(1), base_addr+S3C2410_ADCTSC);

}

}

return IRQ_HANDLED;

}

static struct clk *adc_clock;

static int __init s3c2410ts_init(void)

{

struct input_dev *input_dev;

adc_clock = clk_get(NULL, "adc");

if (!adc_clock) {

printk(KERN_ERR "failed to get adc clock source\n");

return -ENOENT;

}

clk_enable(adc_clock);

base_addr=ioremap(S3C2410_PA_ADC,0x20);

if (base_addr == NULL) {

printk(KERN_ERR "Failed to remap register block\n");

return -ENOMEM;

}

iowrite32(S3C2410_ADCCON_PRSCEN | S3C2410_ADCCON_PRSCVL(0xFF),\ base_addr+S3C2410_ADCCON);

iowrite32(0xffff, base_addr+S3C2410_ADCDLY);

iowrite32(WAIT4INT(0), base_addr+S3C2410_ADCTSC);

/* Initialise input stuff */

input_dev = input_allocate_device();

if (!input_dev) {

printk(KERN_ERR "Unable to allocate the input device !!\n"); return -ENOMEM;

}

dev = input_dev;

dev->evbit[0] = BIT(EV_SYN) | BIT(EV_KEY) | BIT(EV_ABS);

dev->keybit[BITS_TO_LONGS(BTN_TOUCH)] = BIT(BTN_TOUCH);

input_set_abs_params(dev, ABS_X, 0, 0x3FF, 0, 0);

input_set_abs_params(dev, ABS_Y, 0, 0x3FF, 0, 0);

input_set_abs_params(dev, ABS_PRESSURE, 0, 1, 0, 0);

dev->name = s3c2410ts_name;

dev->id.bustype = BUS_RS232;

dev->id.vendor = 0xDEAD;

dev->id.product = 0xBEEF;

dev->id.version = S3C2410TSVERSION;

/* Get irqs */

if (request_irq(IRQ_ADC, stylus_action,

IRQF_SHARED|IRQF_SAMPLE_RANDOM,

"s3c2410_action", dev)) {

printk(KERN_ERR "s3c2410_ts.c: Could not allocate ts IRQ_ADC !\n"); iounmap(base_addr);

return -EIO;

}

if (request_irq(IRQ_TC, stylus_updown, IRQF_SAMPLE_RANDOM,

"s3c2410_action", dev)) {

printk(KERN_ERR "s3c2410_ts.c: Could not allocate ts IRQ_TC !\n"); iounmap(base_addr);

return -EIO;

}

printk(KERN_INFO "%s successfully loaded\n", s3c2410ts_name);

/* All went ok, so register to the input system */

input_register_device(dev);

return 0;

}

static void __exit s3c2410ts_exit(void)

{

disable_irq(IRQ_ADC);

disable_irq(IRQ_TC);

free_irq(IRQ_TC,dev);

free_irq(IRQ_ADC,dev);

if(adc_clock) {

clk_disable(adc_clock);

clk_put(adc_clock);

adc_clock = NULL;

}

input_unregister_device(dev);

iounmap(base_addr);

}

module_init(s3c2410ts_init);

module_exit(s3c2410ts_exit);

MODULE_LICENSE("GPL");

4、编写Kconfig

config SMDK2440_TS

tristate "Smdk2440's touchscreen test"

depends on ARCH_S3C2440 && INPUT && INPUT_TOUCHSCREEN default y if ARCH_S3C2440

help

---smdk2440's touchscreen test---

config SMDK2440_TS_DEBUG

bool "Smdk2440 ts input debug messages"

depends on ARCH_S3C2440 && SMDK2440_TS

default y if ARCH_A3C2440

help

---Select this if you want debug messages---

配置如下

Devices Drivers--->

Input devices support--->

Touchscreens--->

5、添加Makefile

obj-$(CONFIG_SMDK2440_TS) += smdk2440_ts.o

6、重新编译内核,下载到板子的nandflash 2M处

7、在启动项etc/init.d/rcS中添加如下3行:使得开机就可用触摸屏

<1>添加input子系统设备mkdir dev/input

<2>建立节点mknod /dev/input/event0 c 13 64

<3>打印设置echo 8 > /proc/sys/kernel/printk

8、点击触摸屏打印如下:

T: 760416, X: 309, Y: 173

T: 910401, X: 237, Y: 249

T: 925415, X: 235, Y: 263

T: 940416, X: 235, Y: 270

T: 165402, X: 319, Y: 573

T: 180404, X: 323, Y: 581

T: 395402, X: 621, Y: 554

T: 585402, X: 669, Y: 653

T: 950405, X: 333, Y: 621 T: 965401, X: 333, Y: 621

韦东山老师的视频下载地址2440 .txt

QQ:917603226,danpianjikaifa@66457a737fd5360cba1adbe2

学习视频,电子元件选型指导,PLC 学习指导以及PLC 和DCS 周边产品开发

韦东山老师的视频下载地址2440

66457a737fd5360cba1adbe2/file/f9beed69b0#

.avi QQ:917603226

66457a737fd5360cba1adbe2/file/f9690fdc25#

第2课QQ:917603226_GPIO实验.avi QQ:917603226

66457a737fd5360cba1adbe2/file/f91dd8f3b7#

第3课QQ:917603226_存储管理器实验.aviQQ:917603226

66457a737fd5360cba1adbe2/file/f926fbcd6#

第4课QQ:917603226_MMU实验.aviQQ:917603226

66457a737fd5360cba1adbe2/file/f98ccea8a4#

第5课QQ:917603226_NAND_FLASH控制器.aviQQ:917603226

66457a737fd5360cba1adbe2/file/f9d6474d48#

第6课QQ:917603226_中断控制器.aviQQ:917603226

66457a737fd5360cba1adbe2/file/f9657f8c96#

.aviQQ:917603226

66457a737fd5360cba1adbe2/file/t9aa118d81#

66457a737fd5360cba1adbe2/file/t9e1c4044e#

.aviQQ:917603226

66457a737fd5360cba1adbe2/file/t963cbbde3#

第9课QQ:917603226第2节_u-boot分析之Makefile结构分析.aviQQ:917603226

66457a737fd5360cba1adbe2/file/t9de4dd17f#

第9课QQ:917603226第3节_u-boot分析之源码第1阶段.aviQQ:917603226

66457a737fd5360cba1adbe2/file/t922115ff9#

第9课QQ:917603226第3节_u-boot分析之源码第2阶段.aviQQ:917603226

66457a737fd5360cba1adbe2/file/t9114550f1#

第9课QQ:917603226第4节_u-boot分析之u-boot命令实现.aviQQ:917603226

66457a737fd5360cba1adbe2/file/t99a6e0f29#

第9课QQ:917603226第5节_u-boot分析_uboot启动内核.aviQQ:917603226

66457a737fd5360cba1adbe2/file/t9820a106e#

第10课QQ:917603226第1节_内核启动流程分析之编译体验.aviQQ:917603226

66457a737fd5360cba1adbe2/file/t96fa8dc6f#

第10课QQ:917603226第2节_内核启动流程分析之配置.aviQQ:917603226

66457a737fd5360cba1adbe2/file/t9aa094b45#

第10课QQ:917603226第3节_内核启动流程分析之Makefile.aviQQ:917603226

66457a737fd5360cba1adbe2/file/t9f4a7ca84#

第10课QQ:917603226第4节_内核启动流程分析之内核启动.aviQQ:917603226

66457a737fd5360cba1adbe2/file/t9dee089e3#

第11课QQ:917603226第1节_构建根文件系统之启动第1个程序.aviQQ:917603226

66457a737fd5360cba1adbe2/file/t9d5172739#

第11课QQ:917603226第2节_构建根文件系统之init进程分析.aviQQ:917603226

66457a737fd5360cba1adbe2/file/t9e7c46b97#

第11课QQ:917603226第3节_构建根文件系统之busybox.aviQQ:917603226

第 1 页

韦东山老师的视频下载地址2440 .txt

66457a737fd5360cba1adbe2/file/t921e24b83#

.aviQQ:917603226

66457a737fd5360cba1adbe2/file/f5136718a8#

动程序之概念介绍.aviQQ:917603226

66457a737fd5360cba1adbe2/file/f57b7907fe#

动程序之LED驱动程序_编写编译.aviQQ:917603226 66457a737fd5360cba1adbe2/file/f520effad5#

第12课QQ:917603226第2.2节_字符设备驱动程序之LED驱动程序_测试改进.aviQQ:917603226 66457a737fd5360cba1adbe2/file/f52e270acc#

第12课QQ:917603226第2.3节_字符设备驱动程序之LED驱动程序_操作LED.aviQQ:917603226 66457a737fd5360cba1adbe2/file/f51a13dc93#

第12课QQ:917603226第3节_字符设备驱动程序之查询方式的按键驱

第 2 页

TQ2440开发大全下载.txt

QQ:917603226,danpianjikaifa@66457a737fd5360cba1adbe2

学习视频,电子元件选型指导,PLC 学习指导以及PLC 和DCS 周边产品开发

TQ2440开发大全下载

linux-2.6.35.3在TQ2440上移植1--建立自己的板子.pdf

66457a737fd5360cba1adbe2/source/3227941

linux在TQ2440上移植2--Nandflash驱动,MTD分区.pdf

66457a737fd5360cba1adbe2/source/3227943

linux在TQ2440上移植3--yaffs2+文件系统移植.pdf

66457a737fd5360cba1adbe2/source/3227944

linux在TQ2440上移植4--yaffs2文件系统制作.pdf

66457a737fd5360cba1adbe2/source/3227947

linux在TQ2440上移植5--移植串口传输协议.pdf

66457a737fd5360cba1adbe2/source/3227948

linux在TQ2440上移植6--完善串口驱动.pdf

66457a737fd5360cba1adbe2/source/3227950

linux在TQ2440上移植7--完善实时时钟RTC.pdf

66457a737fd5360cba1adbe2/source/3227951

linux在TQ2440上移植8--启动看门狗+.pdf

66457a737fd5360cba1adbe2/source/3227965

linux在TQ2440上移植9--添加触摸屏.pdf

66457a737fd5360cba1adbe2/source/3227952

linux在TQ2440上移植10--完善网卡驱动.pdf

66457a737fd5360cba1adbe2/source/3227955

linux在TQ2440上移植11--完善声卡驱动.pdf

66457a737fd5360cba1adbe2/source/3227956

linux在TQ2440上移植12--完善SDMMC卡驱动.pdf

66457a737fd5360cba1adbe2/source/3227958

bootloader编写指南.pdf

66457a737fd5360cba1adbe2/source/3227040

第 1 页

TQ2440开发大全下载.txt

U-boot1.1.6的移植step by step(TQ2440).pdf

66457a737fd5360cba1adbe2/source/3227044

U-boot1[1][1][1].1.6的移植(TQ2440).pdf

66457a737fd5360cba1adbe2/source/322704966457a737fd5360cba1adbe2/source/3227049

U-BOOT-2010.06移植到TQ2440.pdf

66457a737fd5360cba1adbe2/source/3227052

uboot讲义.pdf

66457a737fd5360cba1adbe2/source/3227054

uboot阶段1(汇编部分)详细分析.pdf

66457a737fd5360cba1adbe2/source/3227057

uboot使用说明.pdf

66457a737fd5360cba1adbe2/source/3227058

Uboot学习笔记.pdf

66457a737fd5360cba1adbe2/source/3227060

U-boot源代码分析.pdf

66457a737fd5360cba1adbe2/source/3227062

Uboot源码阅读笔记.pdf

66457a737fd5360cba1adbe2/source/3227064

在uboot上制作logo的实验.ppt

66457a737fd5360cba1adbe2/source/3227067

UBOOT之Makefile详解.doc

66457a737fd5360cba1adbe2/source/3227068

基于TQ2440和Qt的Mp3设计.doc

66457a737fd5360cba1adbe2/source/3227074

ARM9硬件接口学习之一_WatchDog.pdf

66457a737fd5360cba1adbe2/source/3229021

ARM9硬件接口学习之二_RTC.pdf

66457a737fd5360cba1adbe2/source/3229025.

第 2 页

TQ2440开发大全下载.txt ARM9硬件接口学习之三_GPIO.pdf

66457a737fd5360cba1adbe2/source/3229026

ARM9硬件接口学习之四_CLOCK.pdf

66457a737fd5360cba1adbe2/source/3229028

ARM9硬件接口学习之五_UART.pdf

66457a737fd5360cba1adbe2/source/3229030

tq2440ARM学习1

66457a737fd5360cba1adbe2/source/3229044

ARM学习3流水灯实验.pdf

66457a737fd5360cba1adbe2/source/3229048

ARM学习4在ADS1.2中新建自己的工程.pdf

66457a737fd5360cba1adbe2/source/3229051

ARM学习5实现电子相框功能及LCD屏显试验中两个问题

66457a737fd5360cba1adbe2/source/3229053

ARM学习6LCD屏显实现科比投篮的动画.pdf

66457a737fd5360cba1adbe2/source/3229057

ARM学习7对于科比投篮实验的轨迹分析.pdf

66457a737fd5360cba1adbe2/source/3229058

ARM学习8对于画线函数Glib_Line算法的研究.pdf

66457a737fd5360cba1adbe2/source/3229059

ARM学习14S3C2440 IO口的总结.pdf

66457a737fd5360cba1adbe2/source/3229060

[原创]自己动手编写嵌入式Bootloader之(1).pdf

66457a737fd5360cba1adbe2/source/3230747

[原创]自己动手编写嵌入式Bootloader之(2).pdf

66457a737fd5360cba1adbe2/source/3230136

[原创]自己动手编写嵌入式Bootloader之(3).pdf

66457a737fd5360cba1adbe2/source/3230137

uC_OS-II实验指导书.pdf

第 3 页

TQ2440开发大全下载.txt 66457a737fd5360cba1adbe2/source/3231958

Ucos_II2.52 源码中文译注.pdf

66457a737fd5360cba1adbe2/source/3231960

UCOS-II API 参考手册.pdf

66457a737fd5360cba1adbe2/source/3231962

第 4 页

TQ2440裸机开发试验大全TQ2440裸机开发试验之ADC

66457a737fd5360cba1adbe2/source/3311703

TQ2440裸机开发试验之ebook

66457a737fd5360cba1adbe2/source/3311704

TQ2440裸机开发试验之interrupt

66457a737fd5360cba1adbe2/source/3311708

TQ2440裸机开发试验之Mmu_Nand

66457a737fd5360cba1adbe2/source/3311761

TQ2440裸机开发试验之Mmu_Nand

66457a737fd5360cba1adbe2/source/3311763

TQ2440裸机开发试验之Nand_1

66457a737fd5360cba1adbe2/source/3311765

TQ2440裸机开发试验之power_stop

66457a737fd5360cba1adbe2/source/3311770

TQ2440裸机开发试验之PWM

66457a737fd5360cba1adbe2/source/3311772

TQ2440裸机开发试验之RTC_LCD

66457a737fd5360cba1adbe2/source/3311777

TQ2440裸机开发试验之Touch_Panel

66457a737fd5360cba1adbe2/source/3311778

TQ2440裸机开发试验之UART

66457a737fd5360cba1adbe2/source/3311780

TQ2440裸机开发试验之write_bios

66457a737fd5360cba1adbe2/source/3311783

第1篇基础篇

第1章Linux简介

1.1 Linux系统概述

1.2 Linux图形界面操作

1.3 Linux字符界面操作

1.4 Shell脚本编程基础

第1章Linux简介.pdf

66457a737fd5360cba1adbe2/source/3312215

新手学linux C编程第1章视频

66457a737fd5360cba1adbe2/v_show/id_XMjcwMDAxNjYw 第2章C语言基础

2.1 C语言概述

2.2 数据类型、运算符和表达式

2.3 基本语句

2.4 数组

2.5 预处理

第2章C语言基础.pdf

66457a737fd5360cba1adbe2/source/3312221

新手学linux C编程第2章配套源码,可成功运行.rar 66457a737fd5360cba1adbe2/source/3312253

新手学linux C编程第2章视频

66457a737fd5360cba1adbe2/v_show/id_XMjcwMDAxODY0

第3章指针、函数及自定义数据类型

3.1 指针

.3.2 函数

3.3 结构体、共用体和枚举

第3章指针、函数及自定义数据类型.pdf

66457a737fd5360cba1adbe2/source/3312229

新手学linux C编程第3章配套源码,可成功运行.rar 66457a737fd5360cba1adbe2/source/3312254

新手学linux C编程第3章视频

66457a737fd5360cba1adbe2/v_show/id_XMjcwMDAyMTAw

第4章数据结构

4.1 线性表

4.2 栈

4.3 队列

4.4 二叉树

4.5 查找

4.6 排序

第4章数据结构.pdf

66457a737fd5360cba1adbe2/source/3312230

新手学linux C编程第4章配套源码,可成功运行.rar 66457a737fd5360cba1adbe2/source/3312255

第5章文本编辑器

5.1 vi编辑器的基本使用

5.2 vi编辑器之程序编辑

5.3 emacs编辑器的基本使用

第5章文本编辑器.pdf

66457a737fd5360cba1adbe2/source/3312231

新手学linux C编程第5章视频

66457a737fd5360cba1adbe2/v_show/id_XMjcwMDA0ODI4

第6章GCC编译器

6.1 GCC简介

6.2 GCC的安装

6.3 GCC常用选项

第6章GCC编译器.pdf

66457a737fd5360cba1adbe2/source/3312234

新手学linux C编程第6章配套源码,可成功运行.rar 66457a737fd5360cba1adbe2/source/3312256

新手学linux C编程第6章视频

66457a737fd5360cba1adbe2/v_show/id_XMjcwMDA1OTA4

第7章调试工具

7.1 GDB简介及安装

7.2 GDB常用命令

7.3 GDB调试实例

第7章调试工具.pdf

66457a737fd5360cba1adbe2/source/3312235

新手学linux C编程第7章视频

66457a737fd5360cba1adbe2/v_show/id_XMjcwMDA2MDI0

第9章LinuxC基本应用

9.1 字符串操作

9.2 数据转换

9.3 内存分配与释放

9.4 时间和日期

9.5 其他应用

第9章Linux C基本应用.pdf

66457a737fd5360cba1adbe2/source/3312239

新手学linux C编程第9章视频

66457a737fd5360cba1adbe2/v_show/id_XMjcwMDA2Mjk2

第10章文件系统缔程

10.1 Linux文件系统简介

10.2 文件的基本操作

10.3 文件的属性

10.4 目录文件的操作

第10章文件系统编程.pdf

66457a737fd5360cba1adbe2/source/3312240

新手学linux C编程第10章配套源码,可成功运行.rar 66457a737fd5360cba1adbe2/source/3312260

新手学linux C编程第10章视频

66457a737fd5360cba1adbe2/v_show/id_XMjcwMDA2NDMy

第11章标准输入输出

11.1 标准输入输出的基本操作

11.2 非格式化输入输出

11.3 格式化输入输出

第11章标准输入输出.pdf

66457a737fd5360cba1adbe2/source/3312242

新手学linux C编程第11章配套源码,可成功运行.rar 66457a737fd5360cba1adbe2/source/3312261

新手学linux C编程第11章视频

66457a737fd5360cba1adbe2/v_show/id_XMjcwMDA2NTYw

第12章进程操作

12.1 进程的概念

12.2 Linux进程

12.3 进程创建与控制

12.4 守护进程

第12章进程操作.pdf

66457a737fd5360cba1adbe2/source/3312246

新手学linux C编程第12章配套源码,可成功运行.rar 66457a737fd5360cba1adbe2/source/3312263

第13章进程间通信

13.1 管道

13.2 信号

13.3 消息队列

13.4 信号量

13.5 共享内存

第13章进程间通信.pdf

66457a737fd5360cba1adbe2/source/3312247

新手学linux C编程第13章配套源码,可成功运行.rar 66457a737fd5360cba1adbe2/source/3312266

新手学linux C编程第13章视频

66457a737fd5360cba1adbe2/v_show/id_XMjcwMDA3NDU2

第14章多线程编程

14.1 线程的基本概念

14.2 线程的基本操作

14.3 线程的同步

第14章多线程编程.pdf

66457a737fd5360cba1adbe2/source/3312248

新手学linux C编程第14章配套源码,可成功运行.rar 66457a737fd5360cba1adbe2/source/3312268

新手学linux C编程第14章视频

66457a737fd5360cba1adbe2/v_show/id_XMjcwMDA3NTU2

第15章网络编程

15.1 网络基础知识

15.2 套接字编程基础

15.3 服务器模型

15.4 域名系统

第15章网络编程.pdf

66457a737fd5360cba1adbe2/source/3312249

新手学linux C编程第15章配套源码,可成功运行.rar 66457a737fd5360cba1adbe2/source/3312269

新手学linux C编程第15章视频

66457a737fd5360cba1adbe2/v_show/id_XMjcwMDA4ODky

第16章Linux GUI编程

16.1 GTK+/Gnome开发简介

16.2 常用GTK+构件

16.3 GUI生成器Glade

第16章Linux GUI编程.pdf

66457a737fd5360cba1adbe2/source/3312250

新手学linux C编程第16章配套源码,可成功运行.rar

本文来源:https://www.bwwdw.com/article/uuvl.html

Top