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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 I5 A2 j7 j5 t4 m& P% S#include <linux/init.h>
7 o* Q$ |, w6 N/ p$ R) ]9 W% p#include <linux/module.h>
4 Q7 a4 U( M1 s8 F+ M#include <linux/kernel.h>
% Z+ {- W5 i9 w" R: l. `#include <linux/types.h>$ d: P" B9 M1 n5 ]
#include <linux/gpio.h>8 ^) S' i( T; K
#include <linux/leds.h>
4 i; d& U5 I+ G' t+ A" E#include <linux/platform_device.h>
4 c1 e$ I8 ~" E, k$ u& y
! \) g7 [" f' \& }. s% G# E7 |" L#include <asm/mach-types.h>
, E+ m/ k  L4 ]  r#include <asm/mach/arch.h>7 ~' I0 U% B% T# M1 ]2 F
#include <mach/da8xx.h>. A+ Q* V! [" N6 e2 y
#include <mach/mux.h>" ~! ]* t8 s; z+ `; Q. ~1 j
# `0 v* X8 Q0 e" k+ |
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* r1 Y( q: ~8 {  M2 B, P. ^) e
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ G" ^9 U6 A, C% @% B" E
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 F, B: O) c) A% K6 ], E#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& C; V+ o  `1 I" u  L$ k5 |; y3 y7 y
# L. E! a9 A# [# j0 @) y* U/* assign the tl som board LED-GPIOs*/
- j6 U8 A: o/ D  j+ M8 b8 Hstatic const short da850_evm_tl_user_led_pins[] = {
7 G. L( k8 H! q        /* These pins are definition at <mach/mux.h> file */
# _) ^4 _- |  j& F  X7 C        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; m; U7 T; m8 \2 Y: o2 Q        -1& n; J6 Z! ~- ~8 O
};
1 Z& |$ p# t1 E5 _5 a; c7 R% u6 o7 e$ {  ^: Q& @! _
static struct gpio_led da850_evm_tl_leds[] = {% _  |5 }3 ]: m- D& H7 ~- o
        {
, g: v- b: h2 D: C                .active_low = 0,, o& M3 b/ n6 s* l3 R  a3 M* E
                .gpio = DA850_USER_LED0,+ B1 G0 }+ a- A" r' Z
                .name = "user_led0",
1 M4 r( u5 R0 \% y                .default_trigger = "default-on",
# A$ ?# f- T  r" f# w) b        },( i3 F5 B- K% R/ r7 I
        {
! b, h* A& h" l2 E: q% [                .active_low = 0," c; L1 Q4 q+ _0 W; U/ ]
                .gpio = DA850_USER_LED1,2 d& K  N) n1 K* i# T
                .name = "user_led1",
4 K: {) x% F) r                .default_trigger = "default-on",+ c6 w8 N# Z: V# i' n9 N* Z: o# R
        },# {4 l* T! O1 Y* d) n0 @
        {' A$ {2 V, I* n5 Y) L( k3 v, t4 ?! }" d
                .active_low = 0,  L. D) d; ~5 S7 r
                .gpio = DA850_USER_LED2,+ a/ ~- L/ \7 K  r; V/ h
                .name = "user_led2",
* x, n6 {( A- v7 O+ f* a                .default_trigger = "default-on",/ J, O/ K0 p2 A  Q
        },% |5 F1 ?, E& Q6 ~
        {; q5 R& u% V( E5 W
                .active_low = 0,
9 e; J% H6 y1 _& c4 T" f: y: X  f                .gpio = DA850_USER_LED3,% b# E' y7 N+ ?3 r1 R8 f
                .name = "user_led3",
, \$ `8 {# ?1 P  U- C                .default_trigger = "default-on",! c' h3 T( ~  k. F* Q
        },
% g( p; H* W& d" R2 o7 m};3 ~; _, h: G* m+ }

% E' b4 F% g) L$ W  f" Bstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
% `0 w6 S* j% ~        .leds = da850_evm_tl_leds,
/ V! u/ p+ h6 [: h7 E/ A3 w9 y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 j) F9 u, o2 j8 L+ j0 b};
* y2 H& f3 J- C9 V% Y- r+ ~4 l" u. t; c: Y! b6 t3 `3 M4 m! U
static void led_dev_release(struct device *dev)
- \6 f8 |8 W7 U8 r/ }{
- o( I) z5 `, b};
' S0 {( A" y1 r0 s  t1 X3 ?  E1 W; A; F6 X  o' x! A" H+ X& ~
static struct platform_device da850_evm_tl_leds_device = {: ^3 S& }! a5 ~. ~+ X1 T
        .name                = "leds-gpio",! ^- \) j& I3 `4 @
        .id                = 1,
* p4 `  z$ B3 ?" p2 X9 D7 X; s        .dev = {7 ^' J& d% S# N1 D5 f
                .platform_data = &da850_evm_tl_leds_pdata,
5 X: k$ c- W  D9 ?$ K0 Y4 Q                .release = led_dev_release,
9 N( j$ o0 f4 A/ i6 h& l3 j1 I& B        }
& n& I7 L+ t  s. i* L) j% J# H. H};0 j# Z( @; h3 D( W! J  i

, h' s7 t8 {  D1 p  P9 B# Dstatic int __init led_platform_init(void)+ }+ f7 h: L# ~8 M
{
2 _. ~, H+ ?$ i! Y        int ret;" o. P! z( k2 ~0 H0 m, `% j
#if 0" c0 E% O, `# c$ p
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! N1 v" D3 P6 o/ p8 B  g: u        if (ret)
( b9 g4 A( f9 ]: E/ i                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 q/ I5 S$ z) A8 n- p
                                "%d\n", ret);9 w, L# j9 l# V# [
#endif
3 d9 r$ m# O3 ?& t7 w  I1 O        ret = platform_device_register(&da850_evm_tl_leds_device);0 A# [9 i4 y% H* Z( |, ^% h
        if (ret)
( x  I0 y' ~- D                pr_warning("Could not register som GPIO expander LEDS");
- ^7 W8 h, \/ d        else# C% }& p/ Z7 C& U  B
                printk(KERN_INFO "LED register sucessful!\n");0 ^% [9 h* \# ]$ X

' _0 y; H# e  F        return ret;
" \9 p- B& j& i2 g}. h3 z0 ^, i. `2 G( V. O! W

' r' Q% k8 E& E8 J+ C+ Tstatic void __exit led_platform_exit(void)8 p2 ]8 |6 |' O3 ?) l
{
) X; f* o: }4 c  F7 X' ?) z) z        platform_device_unregister(&da850_evm_tl_leds_device);
7 o& D) v- E) U4 i6 E/ }. u( d* E8 K
  g* `! O( W: I) c0 Z: g        printk(KERN_INFO "LED unregister!\n");+ o4 o* C! @) ]; z
}9 n) n2 Q. v2 l  @. i9 Z+ k* m6 C
9 |) i! s) L" W- l
module_init(led_platform_init);7 u. U# o, a% v# `# a; x; ]' F
module_exit(led_platform_exit);4 u* ^1 c' G2 b% m" z5 O  ?4 e
; S" a. J  O" m% A! D/ ]( a
MODULE_DESCRIPTION("Led platform driver");
" {8 L: z  W: x& T$ z/ J' JMODULE_AUTHOR("Tronlong");$ q( E1 Y' f4 R7 H4 {- J- e
MODULE_LICENSE("GPL");! X) C7 W& F  U$ o9 I) v

% Y  v+ |2 @) G  D2 ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-24 08:43 , Processed in 0.040314 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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