程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8999|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ s2 J; B# t# X6 \. Q% ]# ?
#include <linux/init.h>% W( c! p' [. U0 v' r
#include <linux/module.h>: q! p7 i) @2 o% o# U
#include <linux/kernel.h>( q% q/ ~9 d/ t9 i
#include <linux/types.h>" R" j' ?0 g* x* Y  X+ N4 _
#include <linux/gpio.h>% f% ^" A1 w: T/ Y* }
#include <linux/leds.h>. J. C& C8 [& D3 E8 ^, S3 p. ~
#include <linux/platform_device.h>+ w$ F- p% O* _9 E1 r: C

' \. f- M+ k+ ^" ]5 G#include <asm/mach-types.h>
- h2 ?/ b" `, ~* Z, a# S1 w#include <asm/mach/arch.h>
& u1 W; i* R% M- J% G2 s7 [#include <mach/da8xx.h>+ N+ E7 c) B! @6 z2 W% o
#include <mach/mux.h>
- Q3 e  @) v5 m4 W: I
; u& W7 [! f6 ?/ W#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 ~. N& `9 f5 E  J+ N& n% p
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- D# ?* o+ s/ d: b#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 N/ t; t3 |% c' P& a3 K; O#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), o! X" Z% ?+ F4 ?

" u1 i9 z# ^4 `) ?+ Y# S/* assign the tl som board LED-GPIOs*/- _6 ]* `- t; W3 w
static const short da850_evm_tl_user_led_pins[] = {
5 f# v: I6 g5 ]+ i$ k7 h2 p        /* These pins are definition at <mach/mux.h> file */- B4 v4 M! N( L  g' e
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 _, S8 M6 Z$ B# S! C        -1% i( v8 F1 f$ p! s
};2 }: k1 I0 c+ M; N' J( Q
# j  r4 Q) e3 R0 `% E1 ?
static struct gpio_led da850_evm_tl_leds[] = {0 y6 m1 S; H6 ]2 W( `
        {" [4 K5 H7 P. y
                .active_low = 0,
. J) N' y1 j; Z7 _                .gpio = DA850_USER_LED0,
( |8 x( G" C$ u                .name = "user_led0",/ e# {' L; y* d& d9 ]0 e
                .default_trigger = "default-on",
  C3 t; f! g  ^. B' ?$ i        },
. R% N  [* i6 u$ m/ _        {/ z3 k- }5 L" E. t. I
                .active_low = 0,; A, b- Z, G) o" p  V' _1 K5 w# ?& m8 g# m
                .gpio = DA850_USER_LED1,; L" T: C3 E; ?2 v& H; c# _
                .name = "user_led1",
' _0 ?" ^; V  i& R5 Q  ]0 A" D! U                .default_trigger = "default-on",& \) w8 N" m) H6 q
        },
9 n$ U% g+ [7 A% m* N; g1 j        {
3 o8 A' K& [5 H$ l                .active_low = 0,
. C. i' M4 Y' X7 Q- X% m                .gpio = DA850_USER_LED2,
; d. D( R+ t4 L$ w4 ]6 L# V                .name = "user_led2",1 b9 j$ V! x0 a
                .default_trigger = "default-on",
$ y# ]4 F- Y6 C) Q        },
& q1 T% e5 Q3 b! w; w9 b" E4 I' A        {
( B: c0 O: T+ d5 i9 |                .active_low = 0,& q7 @- Z  @) n9 d2 Q- j
                .gpio = DA850_USER_LED3,6 j) C5 G, r0 z5 G0 |& ~
                .name = "user_led3",
( ~2 U2 O7 s' y  i, j6 O" {                .default_trigger = "default-on",6 J2 I9 |$ A- t9 P' y. b2 U
        },
6 f- ?- g+ A" {( I, b( ~9 z};( _7 M& b. A; x! k% y7 v6 _. @1 L

9 O+ f. D7 h( C8 ^( bstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 a4 K; m* Y/ ~' j- c: y2 ]        .leds = da850_evm_tl_leds,
% M$ B6 l9 N/ w+ n1 y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( b) g$ z6 e2 W9 ^- u};, S5 K$ D1 m4 y. O# [; C7 R
1 b0 ~* @8 H$ \1 [2 R6 f
static void led_dev_release(struct device *dev)
& }$ c( O* k' b, E3 s{; t4 e4 z% I, y' C; m5 z  Q# ]; }' V
};
, k4 K6 ~& H0 o- J6 Z3 L; |$ t/ B" t# F& O8 B) u
static struct platform_device da850_evm_tl_leds_device = {
# h! R" D6 P! B! E        .name                = "leds-gpio",3 `1 d5 C4 m  r  N+ \
        .id                = 1,
7 q0 R4 X; W, k( G2 {% ?; ~        .dev = {
( N9 l# ^, H4 n7 c; v2 M                .platform_data = &da850_evm_tl_leds_pdata,1 U0 f9 o4 Y8 A
                .release = led_dev_release,. p0 d( h3 Z# O0 B" z" j& R
        }2 \+ W$ y' \& _/ x
};9 \2 h. l& p7 G

: U+ F' o" a# A( ystatic int __init led_platform_init(void); K- N$ H4 n" e! K$ E8 q2 I+ }
{
: Z0 q6 i8 w- _$ M8 U        int ret;
. [6 L* T+ k( `4 }4 L#if 0+ F+ b- U$ h! e
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 d. g& Y- M0 O: l- Q0 t0 f' n1 w9 V        if (ret)
( `; B' r& \1 @1 A& d                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& o! ^0 E) K7 Y" H. j2 [1 B
                                "%d\n", ret);* g$ D% h( O2 _  }1 M) u$ a! f
#endif6 y4 ^8 B: {9 M1 X* b% O
        ret = platform_device_register(&da850_evm_tl_leds_device);! z, t+ D: {- N% C
        if (ret)% [; c2 W% [& q$ i& a4 }$ `
                pr_warning("Could not register som GPIO expander LEDS");
2 L+ a! t3 t( |2 u        else9 E" u6 ^! A# h4 x+ U, o6 I- U
                printk(KERN_INFO "LED register sucessful!\n");
0 ]8 W8 p3 O* F( u7 p2 D$ U0 i; }! |, A! J4 k" O
        return ret;! Z, O+ G0 T1 ?8 C; Q6 X
}# w# ^$ V9 T# w" k; N

. J; r1 t: w' r& ustatic void __exit led_platform_exit(void)8 m" {# Z1 ^+ r9 k; b
{2 j# z/ C  p: ]6 G% I+ m
        platform_device_unregister(&da850_evm_tl_leds_device);
+ X$ A1 d9 |6 d. J. B# W% J% l4 \1 Q+ n  j* P$ ^
        printk(KERN_INFO "LED unregister!\n");
+ z( T# n5 k  z0 h6 d}/ g- D2 M; K2 ]  ~& ?# p" T( h

# t# ?; ?% o  R8 |module_init(led_platform_init);
2 q; I, r3 r0 x/ Lmodule_exit(led_platform_exit);/ P% t9 ?; N1 A1 e* c; T% I

" J; m& A  N, S% fMODULE_DESCRIPTION("Led platform driver");0 e8 c2 ^/ |+ F3 \, F$ f" Z$ U
MODULE_AUTHOR("Tronlong");
" f7 L- ~# f$ T) B" \MODULE_LICENSE("GPL");2 }+ l. o) b  E7 G6 b$ Q

: d1 n# w; K1 F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-2-7 19:10 , Processed in 0.038534 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表