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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. I9 ^% D2 M# g#include <linux/init.h>
2 w" T4 c7 Z. ^1 q5 a#include <linux/module.h>
8 T' q$ R( V) m#include <linux/kernel.h>
0 `' N! v- w: B. l" B" D$ s) V#include <linux/types.h>) v* }6 L( g3 v' ~
#include <linux/gpio.h>
/ q" r7 Z, b- ]% L$ F#include <linux/leds.h>
$ M5 w- v# Z, p. D: Q: ]+ Y% ]#include <linux/platform_device.h>3 f! f# O, _0 A
  T9 T( K3 P3 s* g# Q. |$ U% g
#include <asm/mach-types.h>3 K2 g  W" W9 ?0 b0 K
#include <asm/mach/arch.h>% M2 e1 `: A2 g- ?) Y* w- _5 Q) p9 c
#include <mach/da8xx.h>, i0 |6 g0 ^! ?7 V4 q
#include <mach/mux.h>
/ A9 ~! x1 }* j4 w7 m$ |) C# Q, X
$ L8 w/ w, O6 p8 G! r: o#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 u; N/ a/ z- G& r0 {/ e- m
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)$ x- g$ W" b; {% I$ |9 u- o
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
3 _+ S9 X9 }2 O: z7 C: g#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ W, \+ n/ R9 R2 H* H' k1 W% Q% |* J: r; F
/* assign the tl som board LED-GPIOs*/
8 O0 d4 c- G! P$ D3 ~" U  A' ]7 @static const short da850_evm_tl_user_led_pins[] = {) [9 y2 y/ O7 f2 ^
        /* These pins are definition at <mach/mux.h> file */
. ?  n2 N. w* }4 V# I4 L3 |& S        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,3 e. P7 X# ?4 h9 `2 P' E% R
        -1
! n8 k" K2 d$ B3 i: N2 \};
; l* ~: @5 v9 V) e6 g" L+ c6 e- J4 E- F: J8 V+ F4 p. R
static struct gpio_led da850_evm_tl_leds[] = {* f& i9 V3 s& k/ b! e' }
        {
" B) L7 _+ e% [1 I: F  y4 F                .active_low = 0,$ k5 M' q" A% K6 x7 L6 l8 }
                .gpio = DA850_USER_LED0,
% a* i0 R. _1 Z( x& Z  q% W                .name = "user_led0",
! m5 `, i: b( A) h6 f0 W' k                .default_trigger = "default-on",$ G" Q6 F* |8 a/ r, U. t4 K
        },
% ]  y2 y- z( s( _9 @2 S        {; c* @. P+ `. b  ]* Z% u
                .active_low = 0,
1 u, ^# \$ s; G9 z% [* r3 X& @                .gpio = DA850_USER_LED1," q0 d7 z8 h1 Z  G5 N' S$ Y7 A
                .name = "user_led1",8 G+ L% G4 o# i9 B) y
                .default_trigger = "default-on",
1 ]- O8 v& Y  W2 X        },
' Y1 ?6 n/ G! U3 A        {! f" P3 D/ f2 X
                .active_low = 0,% J. e5 Q5 _; l# x* I# c2 `
                .gpio = DA850_USER_LED2,$ y( i# S: M5 \
                .name = "user_led2",
% I; m% q0 K2 H7 G# W* S% W# ^                .default_trigger = "default-on",; Y' t+ y0 X- Z. g- r8 Y
        },
6 {1 t- H+ u6 D  r! t/ e2 h; K/ j        {' Y1 F0 p, X  P, H7 [
                .active_low = 0,6 @8 H+ H- s; G3 E5 _  s% j( e
                .gpio = DA850_USER_LED3,1 @7 a$ P! q2 K; n8 d" r5 y
                .name = "user_led3",8 J, q7 V$ M4 s$ W/ t7 ]
                .default_trigger = "default-on",) I; Y$ g* Y$ \7 ^+ E5 h* f
        },) h6 I- T6 F6 e4 J
};& K" }% _8 a  B& ]3 V
" Y  V3 O* u8 C2 ]; C) Z) C! X9 \
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* [/ I. }& I- B8 M7 o        .leds = da850_evm_tl_leds,
* V9 `* A' h3 d& F9 F" r) ~5 J        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& P! C; A  R: X! I$ I  E$ Z0 {
};; w! Q/ g! |$ D9 X# l+ X  q
9 F" v0 H4 N+ o( @6 S* l$ a
static void led_dev_release(struct device *dev)8 S1 S1 ]$ q: A5 {
{. {4 V5 O% C5 Q2 D
};: w  o2 |# f" l) ?* v

4 u5 o+ _* K" I5 F$ A  ?+ z2 Pstatic struct platform_device da850_evm_tl_leds_device = {
+ q4 |7 m3 H+ s* [/ h        .name                = "leds-gpio",
! ]8 `# l3 ^# j7 j; D8 F' |& a7 R' b        .id                = 1,
( c( @/ Z8 i7 U        .dev = {
' ?' l# n  q6 s. [6 h0 z                .platform_data = &da850_evm_tl_leds_pdata,. P% y( e; M# s) r. A) {
                .release = led_dev_release,8 ~2 s. X+ G- C/ T' i. F/ S; m
        }) f6 L' y! I9 Z$ Q+ G
};# V$ s9 a7 f! ?) E8 _

- G. L* q3 C1 n7 sstatic int __init led_platform_init(void)! o7 f& A3 r1 Y9 O
{
8 C. ~7 p' n! i1 X        int ret;
+ [3 G+ P7 s" M  y5 t/ Y#if 0
' s8 i, [& y% ]) [% A; z: L        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( R0 u3 S" r6 f% t" f+ g
        if (ret)
9 p) p1 y1 J/ [4 i+ B                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 r, m( g6 \9 B# l; y
                                "%d\n", ret);2 [' f" }0 x2 z; l9 ]
#endif$ u( ?6 W) |, K' {
        ret = platform_device_register(&da850_evm_tl_leds_device);$ Z% l- B. B( d0 G7 \
        if (ret). {( o( y: i6 j0 X" v( P( ^) a
                pr_warning("Could not register som GPIO expander LEDS");# ~! b$ I' f- Q; ]
        else
$ P" P+ n$ f3 `5 X4 H" h                printk(KERN_INFO "LED register sucessful!\n");, f- u4 {: F4 u! f7 j
, G" F3 J( |0 e- U" X. u) w
        return ret;2 i$ j  s- F# g9 O" a! U+ a2 n
}
& h) N; R' a! s% f  o( _6 C' L" Q
# |' }& y% X7 Z$ Lstatic void __exit led_platform_exit(void)* J" q# \/ i# Y+ g1 w
{
/ G9 a$ c6 x% w$ P  S4 _" u/ E9 l- L        platform_device_unregister(&da850_evm_tl_leds_device);
, z0 K2 M4 I7 A- L7 O9 N7 O2 v: ]; @, i! k! d
        printk(KERN_INFO "LED unregister!\n");
5 K) U4 y) [: k& d# Z}
. w# a9 y  `" ~- T* d7 i8 C( ~* h( m4 m. ^
module_init(led_platform_init);) A2 a7 x9 S0 ?! R! t$ Z
module_exit(led_platform_exit);. B* C9 w! G: f$ u9 F/ D

8 v: v$ d9 D! K+ ~  v" r. N% qMODULE_DESCRIPTION("Led platform driver");8 ~7 n9 q; W2 Z1 n
MODULE_AUTHOR("Tronlong");
: [+ q$ Q& E2 f. [0 zMODULE_LICENSE("GPL");
2 X4 S, s, C: u: K% o! D, f! p8 R# o$ K+ z7 M* E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-18 07:36 , Processed in 0.041818 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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