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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- r3 D6 [- T" d7 @! K2 D1 X#include <linux/init.h>
2 s1 J: }+ ?4 Z8 A" d! g7 m& @#include <linux/module.h>7 o% ~) u0 i" v' w4 d5 }/ i; G/ ^$ A) z& i
#include <linux/kernel.h># y' k6 q6 _0 G* V/ Y
#include <linux/types.h>
7 G! E' P6 K$ K. c" B# d8 ]#include <linux/gpio.h>
1 @0 s7 m9 `) ^, n+ g#include <linux/leds.h>
  X4 V# M! |- }- [. n* g3 |#include <linux/platform_device.h>
. H! I  f) {4 U$ N0 r8 D2 l
' X6 j" D/ p4 ^" b' J" ^$ \4 _( A: F/ C#include <asm/mach-types.h>) x5 }; M  [5 H" H0 Y
#include <asm/mach/arch.h>
) I5 j) c* c) K+ E/ [# H#include <mach/da8xx.h>, J2 X0 s- U- \7 T
#include <mach/mux.h>- ^% [( d0 t7 h$ I) X6 R1 i1 Q0 {+ z7 b

: U* j" n- f) G: _& C9 c/ `#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' J% ~3 S2 E" d* U
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 E9 A) I* @# b- l1 b9 ~
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 y1 H4 }- @( c9 P& Y+ h4 ?$ z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 J. U. U, M! k* l4 x* M* G. G9 Z: v8 @* [
/* assign the tl som board LED-GPIOs*/
9 Z" n8 J8 F) ^: t$ |( t% zstatic const short da850_evm_tl_user_led_pins[] = {% L# h/ g* V0 p; M3 o7 m
        /* These pins are definition at <mach/mux.h> file */6 ^% q, G$ O* ^4 w
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 j( a8 R/ y+ t# S        -1
! j( E# q' q9 j8 \/ @7 A};
# R) V9 ^, F" s7 h" K
) t  m, p9 }) X4 ^/ e! S* \static struct gpio_led da850_evm_tl_leds[] = {
  W% s  {0 ]( t8 y' I- B; e( ^        {+ n9 S% h% T% b, {8 v
                .active_low = 0,% \  e/ z; G# ^+ W% Z, J2 _/ O
                .gpio = DA850_USER_LED0,$ W  b4 N9 E* z) u- D
                .name = "user_led0",
3 k. a# l6 h  P6 _" L6 }                .default_trigger = "default-on",1 U% V' W3 y: b; t, v4 |
        },, F$ D6 B, I, X4 z1 e4 q: r+ `
        {- t$ k0 C, V; b& \6 }  G
                .active_low = 0,* D+ K0 J4 i9 n
                .gpio = DA850_USER_LED1,. X- s% o$ e4 e3 c
                .name = "user_led1",
7 K5 P- r6 l5 C8 M! n  R                .default_trigger = "default-on",
* L$ [7 G1 G; T" w1 p+ i/ J" Q        },' I) T% j1 a6 ^/ Y! n! i
        {
6 }- t4 Q/ q9 J/ o) }, Y) ]# f                .active_low = 0,
4 v5 _1 Q5 J  l4 }                .gpio = DA850_USER_LED2,$ y3 P3 f: k9 ?! x; c- ^7 X. }
                .name = "user_led2",$ u2 a' v5 i0 f5 F! r
                .default_trigger = "default-on",; ^: z  Q% \( D# j6 k: M
        },
. x! Y' h6 p1 c0 U3 X) p        {- ^! I& {0 L$ A* D& L# D
                .active_low = 0,
$ ]( K: }( i) p  J4 S                .gpio = DA850_USER_LED3,
: v  e& c( ~! K/ W2 S, M7 A2 [5 I# n4 Y                .name = "user_led3",
. j/ T, C" Q/ y" |/ n                .default_trigger = "default-on",- O' m( V$ O( Y" x- H+ c
        },
: I% {3 R: m$ O6 a};% ?  k6 q5 x( a! }2 U9 Q
# f; m7 G1 R8 `. v! V6 B/ x
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( p/ L' M( I. n2 b2 P; |5 l
        .leds = da850_evm_tl_leds,8 g. c6 Y2 o7 G) @% P. s
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' Q! Y  X1 c* S$ d; L};
0 q; J/ Q2 A' \. S: H0 t
3 z3 B6 e( ?5 {6 X% o0 vstatic void led_dev_release(struct device *dev), h! n3 e( a: e* l
{( [2 T! E4 Y( k* d- |5 v! z( L/ q/ x1 j
};
) p+ Q7 y- `) p6 b" x7 Y, \7 t& Y% j9 j3 k# O; D
static struct platform_device da850_evm_tl_leds_device = {4 g( ^6 F4 @) m5 O; P
        .name                = "leds-gpio",; r. [3 @( k' E& L+ N9 t7 ]
        .id                = 1,: }$ q* v+ d" J8 K& K9 I
        .dev = {
; }4 M" d. ~, W9 ]9 L                .platform_data = &da850_evm_tl_leds_pdata,
3 ^1 r; z0 \" _- J6 l% R                .release = led_dev_release,
4 j$ {( ^; ?  _+ Q; O& T        }
; F& ?1 T$ B6 e5 b9 _. t};9 V4 f% G' r8 R3 B' Q; t: `' G
+ N: x' H+ u. U; i; [8 p( K2 l
static int __init led_platform_init(void)
5 [% I% i1 E6 R* {2 p{
. ]1 D) i, U) s2 l* J$ m7 Y        int ret;
$ v! n5 u. h1 V3 E/ N#if 0
/ Q% E! [) ]3 i  W$ |- n3 t" U- F2 c        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. J8 W/ u. q/ f! A7 s        if (ret)
4 g0 X6 S, s& \8 i' H                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ q# b7 Z3 H8 o8 V                                "%d\n", ret);
/ c) L8 ~" h1 r, L& F8 V#endif
0 p0 Y: N/ J2 p" }/ n! m# e& j, S        ret = platform_device_register(&da850_evm_tl_leds_device);" _" X5 i& ]; Y6 a* a2 Y" a
        if (ret)$ Z0 k: |5 U# p" @; H
                pr_warning("Could not register som GPIO expander LEDS");0 L- M2 t; _2 ?  M6 @- d) ~: b3 b
        else; l$ F" M5 \4 C0 O/ F
                printk(KERN_INFO "LED register sucessful!\n");
0 N  r$ e1 B* _- Z! t  j  g7 f  L* Q8 u) M8 D, M; q
        return ret;% S7 H, R6 P6 P' T$ t- P
}2 J) s$ }5 F% ?

4 C& \0 i' X) [- ustatic void __exit led_platform_exit(void)
5 \5 O/ g8 O" ^$ J+ T{+ B9 u# m" k) Y5 t7 V
        platform_device_unregister(&da850_evm_tl_leds_device);" G) n' S* Z' ?0 i3 ^( ~2 b  b" U
; ], V8 E, Q# L) N8 t
        printk(KERN_INFO "LED unregister!\n");' v4 Q  C( V" @5 d& U
}
8 |/ g- _2 i2 K/ X2 k/ X, Z$ E
! D3 X5 q0 G/ i* mmodule_init(led_platform_init);6 t" T" {3 _1 Z* }7 }& \9 E
module_exit(led_platform_exit);
# m7 H: R/ H; e8 M9 ]  Z* P( H# w7 u; d
MODULE_DESCRIPTION("Led platform driver");& J/ l6 p( o& v# Z" b4 `7 C7 R
MODULE_AUTHOR("Tronlong");
  ^) Q# T- ~& n# JMODULE_LICENSE("GPL");
' G6 p; N8 v$ t( y1 b7 R# v' V* h) m* b, V5 N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-26 09:42 , Processed in 0.062072 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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