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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 |. o1 g! r5 v4 k0 `3 f#include <linux/init.h>" C  U( V+ G" F' i, }
#include <linux/module.h>
4 L1 X9 W6 [1 c! X#include <linux/kernel.h>) E* G5 v! l0 h, G/ O
#include <linux/types.h>
* h( F( V) q$ }2 H7 U. U' l7 u#include <linux/gpio.h>
" G4 C! k' A5 ~0 E  ~#include <linux/leds.h>3 ~. H5 S) B3 r: s* B1 ]# f" @
#include <linux/platform_device.h>
: k$ P4 H* a! A6 {  }9 T, Z; D2 _3 {: V0 S
#include <asm/mach-types.h>9 E  `  k$ x( P, g* S9 @, W
#include <asm/mach/arch.h>; g4 _" ]- W/ g/ b7 c/ S
#include <mach/da8xx.h>
: r: `: a! U8 w9 i#include <mach/mux.h>
0 J8 y8 S5 O. u' g4 {# r3 ~1 M4 @$ V2 s$ O+ c
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)7 I2 s% [' ?5 V) {" g$ [
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- a$ H9 w' U2 w2 [2 K8 ^- I* O, h) Q5 q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) }3 q2 \; N% B$ k- V0 @#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! }. R6 {/ p% Y0 r- v! _! q9 O/ |+ W7 ^1 l% w1 W
/* assign the tl som board LED-GPIOs*/6 M) n/ b- _  @, B7 n
static const short da850_evm_tl_user_led_pins[] = {5 q, v$ ]: G6 x$ E. C
        /* These pins are definition at <mach/mux.h> file */. s: F5 d# x% f% I7 o8 d# X8 a8 M
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 |4 L6 d5 a, Z* I$ r! v        -1  A& S& m1 ^0 z
};
* @! @6 W# A; L- Y% o
3 E; i5 @2 ?1 A5 Q* l2 pstatic struct gpio_led da850_evm_tl_leds[] = {7 v- `! N% @5 [" Q- n
        {
0 h! j9 \. `- v: g7 N' y( M6 T( L                .active_low = 0,3 e* A2 L5 k: |( M
                .gpio = DA850_USER_LED0,/ h/ V. L) c- K! b6 ]( r( Z5 V
                .name = "user_led0",4 F9 e5 I, n, e* m: ]6 z' a
                .default_trigger = "default-on",
, J% W% k& b7 b" v0 U  Q, n  `        },2 O) @- U& D/ O. n; R: d
        {* }4 B6 F/ B3 S2 W8 q! _1 N/ `( i& ]& |. ]
                .active_low = 0,
8 u( n( e! H  Z                .gpio = DA850_USER_LED1,; i, d. B+ l2 S+ z2 v0 S) }
                .name = "user_led1",
# O3 ]1 l: n% ?( _& k# n; y                .default_trigger = "default-on",
# A4 S" [; D$ o+ T        },
! S, J$ }3 I, ~. {5 X6 x8 J3 ?$ \        {* S) B6 [! w; n( }& a+ A
                .active_low = 0,
) h$ t7 E2 x* R; c  K                .gpio = DA850_USER_LED2,
7 j7 S, @' ~3 v  R                .name = "user_led2",; M. h9 ?, `- S( w+ y" y
                .default_trigger = "default-on",
) M8 R4 N1 g' y( h        },
/ h/ Q" H+ q, @        {- f6 P+ {9 h8 r# l: y2 S
                .active_low = 0,* Z5 v' A4 M) B: {
                .gpio = DA850_USER_LED3,
- g* n- S/ w+ V- K, J                .name = "user_led3",) e' K; p1 k+ y$ l
                .default_trigger = "default-on",7 A" |- g  w3 I- I9 e# u
        },
/ Q1 [" [% D& o/ `3 z% e};
6 d" O3 j: L2 U1 c0 j3 V$ P2 Z; Q9 u  b* P% }2 D) |; Y) a
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' _" }6 H6 h' P2 n2 m        .leds = da850_evm_tl_leds,3 I; W5 d9 _3 c
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" Z+ |! i9 H5 A( S* Q/ T};
' e- g% d# ^4 P: ]) X! @, O0 ~. ]$ A8 o1 o2 {4 O' [. n9 V( s
static void led_dev_release(struct device *dev)1 a4 y9 o: g: V' ?4 _  H) Q
{
: R. {8 ?$ v& R4 f1 Z  D. ?: K};6 W. Q6 i# w8 h8 v# R! h6 y

! u. C; a/ X& g" V) H$ C$ O" g5 Cstatic struct platform_device da850_evm_tl_leds_device = {% A2 k. W) y3 _& F& b# c# N
        .name                = "leds-gpio",
- y' H4 \. A7 L. r5 u        .id                = 1,
$ w+ r) U' r  u0 m& p/ v" G- x  f/ C: |        .dev = {4 Z' e8 j/ O: T# }8 L0 [5 j4 ^
                .platform_data = &da850_evm_tl_leds_pdata,
1 ^, B/ n1 W/ ?/ I# E! u. F                .release = led_dev_release,
: `4 u5 O5 T4 _' q) ^) e: Y6 E% u! h        }( s; e! e2 e, _# @/ D' E0 ]
};
" M7 S5 Y% W. L  ^  c* `- h
: w5 B* j8 @9 P) h% L+ Xstatic int __init led_platform_init(void)
% `3 q' X: @/ L5 @% W{
4 _! E% W& ?3 I2 I6 x6 k& Q4 r3 {5 ]% Q        int ret;- i8 T2 [- W# ~1 h2 I: a
#if 0
! _* l  m3 O7 N0 J; b6 N        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% n0 |! s: s! _+ o, V
        if (ret)
0 [, }" y1 j9 a$ D' K2 L4 w# a                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; P% v5 ]* Q) J1 e4 d" w9 N                                "%d\n", ret);
& g; u. \* @, l2 a8 Z, H#endif9 @' L0 o8 i- U0 y( B+ g
        ret = platform_device_register(&da850_evm_tl_leds_device);
% C( x: l. B$ @5 ~# h; T        if (ret)
, r' T( g5 W( z: C8 ^                pr_warning("Could not register som GPIO expander LEDS");% b" n2 E0 t+ @& k
        else
2 l! n5 N0 r1 C: I! \9 L% [4 E) |5 k                printk(KERN_INFO "LED register sucessful!\n");
( k" x, w2 ~) R
5 v3 K# t# n6 p        return ret;
% S, ?' `7 e* c5 H4 h+ V}$ a: R8 B4 U: n- ?- H9 l
. ^0 s; v: e0 q) r
static void __exit led_platform_exit(void)
/ z/ N9 L% n  T8 U1 Q; y$ I$ z0 I& v{, D, T! T+ f& M; ?
        platform_device_unregister(&da850_evm_tl_leds_device);" l* v. i1 v0 g3 t5 y

7 t6 Y1 E1 ^( q# s% @7 s        printk(KERN_INFO "LED unregister!\n");
& y! i& ?( a: \2 L) f: _) v4 c9 U}
% L% f% |2 g- h( S# r' z  k1 X. D' j8 Q, r
module_init(led_platform_init);
8 ]3 z1 i  O. f8 R5 X0 amodule_exit(led_platform_exit);
% a5 ~9 G  @1 r% ~  D" t/ s2 Z% z9 C8 g: }* P4 m- Z
MODULE_DESCRIPTION("Led platform driver");' F0 P3 h  o7 Y, t& S4 l+ O
MODULE_AUTHOR("Tronlong");) }$ {$ h, p. b% e/ ]9 z
MODULE_LICENSE("GPL");0 b3 J2 d1 f9 k5 S; [0 p5 {
& Q$ J* c# H, e/ m( _) |- v1 [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-23 08:54 , Processed in 0.045926 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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