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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- U* S. f1 F2 J( ]. [5 M$ C0 P
#include <linux/init.h>
5 e% u( [. f. @( E6 W; q# @. Y; S#include <linux/module.h>- L- ~( ~5 o% Q$ u5 q
#include <linux/kernel.h>
# C; V; r' V4 h) z" w#include <linux/types.h>
: m* _' s! [7 P+ B6 R#include <linux/gpio.h>( T# h4 w6 t: H
#include <linux/leds.h>
8 p! y3 w5 @0 J  m7 w) k#include <linux/platform_device.h>7 @' F  Z5 ~5 u2 n& V: j! k2 [% E
: y  D( F8 \  M) A) h
#include <asm/mach-types.h>
2 M9 R* [* A: ^/ k#include <asm/mach/arch.h>4 g! i, B! c: {' }: o6 f
#include <mach/da8xx.h>3 N9 u1 j6 p4 Y/ i) d% X
#include <mach/mux.h>- r: h# H5 x% p) U$ H% m
/ G1 [6 t; _) k7 z
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
/ @; d% ^1 D, }$ z+ R3 B) i#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" p) R$ U' H" v9 m$ Y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, G+ u/ V  |& K+ L) a& T; Z! Y, J+ t2 g# ]#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 N% P7 H- k" C" Z( z- h
: ]$ v: r+ `7 C: a$ N7 M0 P/* assign the tl som board LED-GPIOs*/, N" c+ p: n8 m2 Y# w
static const short da850_evm_tl_user_led_pins[] = {
' h- }4 j: C' ]  w& \        /* These pins are definition at <mach/mux.h> file */) y7 y2 A8 q6 j, n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; s9 y% W8 n+ X) N4 T# Z( \( a$ D
        -1
6 {+ a4 [9 I/ V) X2 A- ^; g};# U  z( j9 K: G* y
' n6 C' a: R9 e& c2 z2 U
static struct gpio_led da850_evm_tl_leds[] = {
, L, o7 |; d; T& S- y: P8 @8 S        {
4 T4 U, h# f4 d6 e7 i, h  K7 E+ P                .active_low = 0,
3 Z$ A; W- ^; B* h                .gpio = DA850_USER_LED0,9 q; L# \$ D: d7 ~
                .name = "user_led0",
( p8 w# J# m+ h  |& f                .default_trigger = "default-on",1 S" L+ [: V' t; d$ K2 V; k
        },0 H( z1 Z5 X# y! w7 \
        {
6 a- W' l; r4 z$ J. H% @; O                .active_low = 0,
7 O' u5 j: L6 x# o                .gpio = DA850_USER_LED1,
) _) u% W' Y- p9 v% f  h& ^+ e2 ~                .name = "user_led1",# W' v; E+ a8 \  s9 T4 ]6 v2 q
                .default_trigger = "default-on",
: w, o  O" ?) I        },
$ w& v: f* `2 k, N        {. a8 Q. a" ]  ]6 M
                .active_low = 0,( \# B# l# f7 e" P
                .gpio = DA850_USER_LED2,' u* Q5 U  K- E" q+ ~' i; z1 k0 f
                .name = "user_led2",
" B/ t! Y1 \8 G, P- L. A                .default_trigger = "default-on",9 B  [" s3 |/ O1 O* e
        },  }! S6 S2 n& t. O( [
        {
' I# V$ k- a5 z/ B                .active_low = 0,0 q+ V: M9 C: m& a$ X2 s
                .gpio = DA850_USER_LED3,4 R; {9 @; `2 i! j+ r
                .name = "user_led3",
& _: K2 |: N+ o. c6 S                .default_trigger = "default-on",
  w5 K: I4 h# K8 ?        },
2 V. \* |4 d4 m! ]( |1 X};9 B4 ^6 I& J6 N- ]0 T" i9 {
. m) z7 v. n3 i1 V8 [* l$ D
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 k. e8 ^4 @, U0 q. G4 y        .leds = da850_evm_tl_leds,
8 v8 ?. V; l2 U        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- t. i3 v; R% w, @6 R- P* Z6 S0 X};
/ K. Q9 F* G* m
1 d+ R) g0 f% {static void led_dev_release(struct device *dev)7 G% t2 o/ ?, T" e7 m% x# h1 F
{/ X/ X3 |& I! z$ X' r- j
};$ f4 e7 v2 v8 s* @  x+ [/ I, N

  Z/ f1 i7 v4 }static struct platform_device da850_evm_tl_leds_device = {, D: [3 t1 |% j8 Y6 n2 R, k! M
        .name                = "leds-gpio",# Y6 k2 }6 i0 |1 C# ]! y. y
        .id                = 1,
, N" ?1 v- e" t7 t        .dev = {
. j, A9 D: O! k9 r+ y" n$ L8 l1 Z                .platform_data = &da850_evm_tl_leds_pdata,
% g8 f3 z1 L+ |& ?3 Z$ O                .release = led_dev_release,
% c7 H) U' \# E: E+ R) P0 E+ d, e        }
4 |: d$ n3 b! X& ^9 W# u2 `: I};- L! u2 a% u9 s
+ B+ b8 R, I$ L4 e& o
static int __init led_platform_init(void)
; Q8 F+ n3 M: v{
! Q; w: Q! t# O/ k9 O& I6 F. m        int ret;4 E/ \+ Z$ x6 K3 a+ p- O  c( o: b
#if 0
. D& v% p% [+ @2 Q6 x& ]        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 P* k# Y3 s) w" U7 X8 A        if (ret)' N3 L+ Y+ W. G; i
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ f/ n; M; P, _
                                "%d\n", ret);
& V' K" ~9 @7 K# O" T) e% E) l#endif/ g" ^8 F! `! j$ {/ o' n
        ret = platform_device_register(&da850_evm_tl_leds_device);% Z. f5 ^* S" h% Q# C( A# J) b
        if (ret)
1 Z; s: M; r' {5 y1 B                pr_warning("Could not register som GPIO expander LEDS");/ G9 M* s2 R  R  C8 q4 v5 m
        else
/ L! L) a5 {0 Q. n; E6 i                printk(KERN_INFO "LED register sucessful!\n");+ I# T3 u* R2 r( e
/ J! M* J/ P. Q
        return ret;
* c  l/ l1 h, f( `! G: ?7 v3 X}9 \$ ~+ T- t. S7 ?* y. Q. z

; p; h% S( W* X3 Z5 l4 D. |static void __exit led_platform_exit(void); U# r* E- a  b5 f* ]+ F
{
6 |) I. H! P  o) Y9 F) D" H: R        platform_device_unregister(&da850_evm_tl_leds_device);
0 r  t1 ^- F4 h8 c. ?) }4 f! Z' m8 s+ ?' s2 i  I  K7 R
        printk(KERN_INFO "LED unregister!\n");
6 X0 ^$ n+ L- H3 |* ]3 x* Q2 u}1 ]# e6 c8 L+ Q0 }; {) t
! w3 ]& @; B8 ^) W  e, W
module_init(led_platform_init);
# y- V0 t7 t! Q. T2 Ymodule_exit(led_platform_exit);4 H* e! N$ |% M; n, Q  V

: ]& y' g. k7 }" x: E2 mMODULE_DESCRIPTION("Led platform driver");
# n0 P3 W! z% \6 eMODULE_AUTHOR("Tronlong");6 o; [* P' D+ T+ F+ ~, ]3 L0 r
MODULE_LICENSE("GPL");; ]9 i0 C9 t" W

) q% O8 ]# L' d. F8 g( N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-4 01:45 , Processed in 0.035412 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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