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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 y$ d) m0 a$ S: @& a#include <linux/init.h>/ x+ H# D0 B1 H5 [- P+ y2 u
#include <linux/module.h>+ Q' k3 C, P% @, P2 h# m
#include <linux/kernel.h>& [/ V1 r0 d5 V4 ]
#include <linux/types.h>. A3 j+ j) r, z) E- v) l" J: _
#include <linux/gpio.h>
" \' d! E- h) V0 k/ O8 b#include <linux/leds.h>* t& w4 t1 D7 h, @0 s! J' e6 v
#include <linux/platform_device.h>- Y3 n3 g2 g2 [. }. R9 n0 ~& Y9 x

) N$ |6 D  m# ]. G1 z* z#include <asm/mach-types.h>  o, s6 s& J/ n( j- B/ X
#include <asm/mach/arch.h>! y; b5 r6 q" u
#include <mach/da8xx.h>, ^" ]7 l! k. |8 j
#include <mach/mux.h># s9 G2 X1 `2 t% L
1 y* C4 y1 w* K! b* i' u9 l
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ d$ u/ p; ]) {#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# P' |; n  O+ L* i$ l9 ~#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 }- Z9 r9 Q1 `" z! o3 @
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 y) _; n. o# N+ P: `, A. L
' E7 z! g) u% D' Y9 q# X/* assign the tl som board LED-GPIOs*/
; O5 y6 [% ?3 [, ^6 h( Rstatic const short da850_evm_tl_user_led_pins[] = {
  a( \# C% e# T8 s        /* These pins are definition at <mach/mux.h> file */0 s' {$ p3 w+ g& b3 X
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
. v: i- K7 s! q1 Y' }        -1. J' @7 o2 _$ Q5 a  Y+ _% p/ Y' x% e
};
8 ^9 [, i! g& X4 a( x/ p- q& _8 N
static struct gpio_led da850_evm_tl_leds[] = {
- g) ^+ f- @+ A, g- V        {
7 I; R3 q  p* r' {4 R                .active_low = 0,
: e' p. _( x# @                .gpio = DA850_USER_LED0,; l, C( b% G* H
                .name = "user_led0",: k( [1 R' h4 F; z7 U% S
                .default_trigger = "default-on",, _- W' P0 \2 J2 U/ S* V
        },
2 s& X$ a% s$ d2 G  X        {
! O2 k  f; S: ^5 t                .active_low = 0,
7 `) q; a# j8 E2 w- g$ D                .gpio = DA850_USER_LED1,
8 C0 a; Z+ y- q5 @7 q  J! f$ }                .name = "user_led1",
" d: N- t! U$ f4 F                .default_trigger = "default-on",
8 Y% h# T  e* q) \        },% ]. j1 t* L. G
        {
4 K, @! Q) d: W* f+ i2 q                .active_low = 0,
4 A; U) ], o3 v5 M& J                .gpio = DA850_USER_LED2,
3 u) L- Y) Q4 W6 c: v                .name = "user_led2",
. o+ F4 [; W0 z2 X% k7 L2 B                .default_trigger = "default-on",; T* w1 X- F$ Y+ v' X
        },
; g; G( d; T, B" \- I5 M; C  B  u        {
3 R5 s: p2 j7 A                .active_low = 0,+ Q0 D3 c1 W! o2 _8 C6 |, g
                .gpio = DA850_USER_LED3,
. Y+ X* M: r0 C3 t                .name = "user_led3",
  J+ O6 T) K( S  M, N: ]5 X' ~                .default_trigger = "default-on",
; p; ]! y4 P1 G: w8 D        }," ?- ^' i5 i0 e0 P% c
};9 {- P3 Y$ }1 h; V

  J! Z* b% ]9 j: S, Tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! @9 N8 v4 g$ m8 s6 a: V
        .leds = da850_evm_tl_leds,0 X1 a( @1 ]9 B; E: J1 A
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' Q! i/ I( d/ _9 y0 O& {
};
' o3 X3 T/ ?! m$ C1 c5 @) O; J* r" U3 Q, ^
static void led_dev_release(struct device *dev)  g, t- @% m5 Y( U
{
3 Z! }! K( k# k0 x. [1 i/ `- D};9 P# V1 c; ^! M, E
; |; P. ^3 j% W4 C' C& h( X
static struct platform_device da850_evm_tl_leds_device = {
4 b+ G+ |0 ?2 O. W" ~9 C1 D  P        .name                = "leds-gpio",- z3 m! `3 U* X, O" n/ L. v
        .id                = 1,
. [9 s# l/ k8 z% x1 U& M; e" J        .dev = {
+ t3 O9 i! w' \7 t                .platform_data = &da850_evm_tl_leds_pdata,
$ n; ~/ S# @: d" X8 k% t                .release = led_dev_release,% y$ D0 z8 X+ [* f% f( Y
        }
, a4 }7 Q% @* n/ F/ ]};" U4 Y8 _9 E9 l2 a' j" l0 g
8 N7 B. L3 }8 t9 u% U  u, X% g
static int __init led_platform_init(void)
% ^8 v) t0 r( a, d4 X5 Z+ _{
( d( a6 L3 j, u8 k) ^9 P) j+ p( d        int ret;, f; f/ y* t' ^% X; ~5 k( C0 a
#if 07 @! A6 o8 w+ R" R3 ~% S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- s! J7 R! Q6 b. q3 S        if (ret)( J7 u8 T5 I; k2 Z2 M
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 L8 v$ W, m6 D9 n5 v9 F
                                "%d\n", ret);
8 B6 ^7 |+ \& t+ u( |3 }' d#endif
; N7 r; k6 F: d' i' b        ret = platform_device_register(&da850_evm_tl_leds_device);
% n3 o/ @: J  k        if (ret)
4 L# F5 V# G$ l" [2 ?3 S$ {( M6 x                pr_warning("Could not register som GPIO expander LEDS");7 J* Z* ]2 \$ m. I5 n# S
        else1 C; T3 X' w! @* l8 ~) z
                printk(KERN_INFO "LED register sucessful!\n");
# }4 U: V( N4 Y3 t1 V, }4 \( N: s7 {9 p6 ]+ |; J7 ?9 K( [" S
        return ret;
5 _4 `: @4 a7 W# q( M6 c& c}! Y; P+ a( F* N7 a% H
9 q8 W5 W0 G" y& T; l& I7 v
static void __exit led_platform_exit(void)
% G/ B/ W, b( r! s; \/ W  }5 k{0 a0 v" Y: [# B/ n7 G6 {
        platform_device_unregister(&da850_evm_tl_leds_device);
* N8 |; O  Z3 |6 B* S' s) S
/ w& }/ s9 p5 _& t        printk(KERN_INFO "LED unregister!\n");; d' E3 |2 g! n: I
}# S% S; c6 G4 Y, \6 }/ `# w

  O" c7 J' }2 t& ?: y4 v& C5 w( Imodule_init(led_platform_init);
$ B! [/ q! n. L: L) A0 u, l( Kmodule_exit(led_platform_exit);; w% h( M( ~2 ~! x

; m! u8 J2 _5 p7 SMODULE_DESCRIPTION("Led platform driver");
" b4 b1 D$ x+ D7 [! M% AMODULE_AUTHOR("Tronlong");/ Z% L5 M" G' h3 w8 j
MODULE_LICENSE("GPL");% n; P, y* i8 |' a! v. v5 Z
4 C# D) Q% X8 \+ E# e! Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-21 16:09 , Processed in 0.036954 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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