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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 }% m. N3 b+ ?% a1 Z5 ~( }3 [#include <linux/init.h>; _; N6 Q' b" {1 Q
#include <linux/module.h>
$ C; q( q0 o; M& u#include <linux/kernel.h>: `  H' D# R! n7 H7 ^' n2 q: k3 N$ w
#include <linux/types.h>
* ?2 Z1 `9 h, M0 e#include <linux/gpio.h>9 X3 a# S/ g$ ^, ?
#include <linux/leds.h>
1 P+ P  n( _5 a" u% J# q! s#include <linux/platform_device.h>
) _$ x& p$ t4 A, _! _9 e& P- n. d: W3 Q! m2 u% Q
#include <asm/mach-types.h>
  K5 ~  _9 U$ x$ P! Y5 i#include <asm/mach/arch.h>
! @- b$ t& S3 Z$ N' I1 G2 v#include <mach/da8xx.h>" h# L- A$ M$ V
#include <mach/mux.h>
2 Q' ~. h0 n4 ~8 j) d! Z4 Q9 z. ]. p# p  `- k7 o* S6 u
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). E) [; H8 C1 ]' E- d
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 U' p1 L1 p8 s- e#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 I8 Z' \  {- z/ k2 O#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); Q0 Q, T6 L0 ~7 U

4 [+ ^' e5 g5 g! A/* assign the tl som board LED-GPIOs*/9 D4 m& ~% i  p4 j( a
static const short da850_evm_tl_user_led_pins[] = {
& j2 a; R0 P+ O( P        /* These pins are definition at <mach/mux.h> file */4 r: T7 K/ _7 `* A
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ U0 [; F$ D0 a) d7 p& R( @
        -1% u$ l' {5 g2 B7 C  O' q7 M
};
) }; N- s* A0 {. n! c1 v, @8 s% U" ^6 s" ?
static struct gpio_led da850_evm_tl_leds[] = {8 Z$ p) `0 P" M" Q4 _  Y1 x
        {1 T3 t: b8 Z6 @: N! Z
                .active_low = 0,
+ a2 N! m1 V8 I1 F$ k) I1 `1 J                .gpio = DA850_USER_LED0,
( K" b# K. F5 c. l, K. Q                .name = "user_led0",
4 I: z4 }8 C/ H                .default_trigger = "default-on",
8 T) |8 k+ S# E6 P        },! Q% O, b9 B  c/ h0 Y
        {; b# V/ R% l1 ^- G) j: |7 r3 T2 v
                .active_low = 0,2 R. @% n# u& o% x* m
                .gpio = DA850_USER_LED1,. ^8 M* S( R5 [$ }8 ^
                .name = "user_led1",5 f. H  ?3 O# ]6 _9 Y
                .default_trigger = "default-on",
1 [. M9 z/ d  \5 W; f        },! ?: _1 {. u( K) ]
        {
% j2 `2 g; b* y- x2 w' s                .active_low = 0,
2 ~, A8 P4 N: E5 l* t- ~& `$ |) g& X                .gpio = DA850_USER_LED2,
8 e1 i9 L% ^* k7 X                .name = "user_led2",# }8 R: `* g8 b+ p
                .default_trigger = "default-on",7 s4 L: Q" E% N: X
        },
8 b( Z& Z' I+ g% X3 h8 p- {        {( ?% f  {8 V: h: ?" v9 b! w
                .active_low = 0,$ U% q# O9 \# p1 D0 j
                .gpio = DA850_USER_LED3,
7 X4 U) ]) Q, |+ ~" i& H2 z2 Q                .name = "user_led3",* L+ O$ i3 k2 w' l
                .default_trigger = "default-on",
/ z* u/ D) C( _* q9 k5 T9 P        },8 X) b- f& b" \5 r2 j
};: T4 r5 n; E# C. o3 H
5 O% m! B( V4 O0 F# i
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
+ h' \: [1 F" w) X) r* [        .leds = da850_evm_tl_leds,$ x5 c' N) U- Z  t1 ~1 E* \
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% [5 y" k( T3 G3 i9 ^0 ^  ~};3 A  t4 E' F1 f% z$ `4 ?
( f2 T; P3 R  p/ ]  ?1 j5 s& N
static void led_dev_release(struct device *dev)
$ v/ u8 @/ @6 g$ ^{
; S: d9 s5 d/ @0 P: c1 i2 T6 Y};! ^1 Q5 Z& r  y& O
! Q" k) b7 \8 B5 R  l2 ]
static struct platform_device da850_evm_tl_leds_device = {6 @- G' C% E  A5 K6 h+ [. @
        .name                = "leds-gpio",
2 u  a. {7 x  F        .id                = 1,, p4 Y! h" U2 F/ l( Y
        .dev = {
1 T" p6 |  v; ]+ C                .platform_data = &da850_evm_tl_leds_pdata,- s: H& Z' n* J. f) ]' Y6 @
                .release = led_dev_release,& P$ a" o8 y, l" r7 R
        }
( A- l9 K, s2 q. F, w" i. J% |% L' L};
- b" F2 g. D- j! ?# ?5 h; I: b: P$ h' ~) i# L* @* \2 c
static int __init led_platform_init(void)
/ q. t& P2 W; L2 @  R0 G- X2 U. O9 a{
5 t( r5 g2 D" v/ \# X  P, c        int ret;  M8 g; S2 U6 s  Z" Y5 h, _2 ^& L
#if 0# Q5 g' i" q: N/ v
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 _5 [. U6 y5 e% ], ~& K5 y' B6 }
        if (ret)
) f! b( U& d1 T6 m# b5 H+ Z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 B1 p% W& T! }% O4 m: h                                "%d\n", ret);
3 z0 a9 N* u% ?6 a4 J#endif  U! l% C* s' O- D3 E/ W& M
        ret = platform_device_register(&da850_evm_tl_leds_device);3 @  ~+ ?5 Y8 N* D* H3 w
        if (ret)9 G0 P& C, H7 S% o7 c1 h, h
                pr_warning("Could not register som GPIO expander LEDS");
+ M, W, y; o& n2 v        else
+ d9 \" B3 b4 o( C4 I                printk(KERN_INFO "LED register sucessful!\n");( ^0 j8 ]9 m1 ?
3 |. c4 `2 N2 q! T! S- s
        return ret;
6 m. J6 Q1 p/ `' k2 U4 k. P}
" v+ y! o9 W0 L% e, X. A# W& @% R& e5 ?9 G
static void __exit led_platform_exit(void)
4 l4 N* @/ G# l: j  a$ s{
% B+ ?  H; F! K0 Y/ Y        platform_device_unregister(&da850_evm_tl_leds_device);
& {7 ~# ?* ~  T* w* S
+ u8 @( I2 U0 s+ }* L0 o! s6 X        printk(KERN_INFO "LED unregister!\n");
4 p$ A& Q- W# ?. ^. L}  G7 ]: n$ m3 I+ L) @/ T
2 T  W8 r. b' e- l7 z3 C
module_init(led_platform_init);  ?/ J, A! j) Q
module_exit(led_platform_exit);
2 x: h% r3 I; v5 u+ C6 B  B; |. V/ z' Q1 W, M( j
MODULE_DESCRIPTION("Led platform driver");
4 _2 [% L7 r' o) J. o/ qMODULE_AUTHOR("Tronlong");
) [7 F, D/ B# A9 yMODULE_LICENSE("GPL");4 [; `8 \. L3 L, P, `; s

! {+ S6 F5 [% S4 p1 K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-6 17:27 , Processed in 0.037737 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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