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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- q- k( f3 g, Q- V+ y" J  C3 I
#include <linux/init.h>
# g7 O( x) L0 |6 ~/ v# J#include <linux/module.h>
* w2 h& z7 @0 U3 Y! k, d#include <linux/kernel.h>) R( D, x9 y  F: d2 E& H
#include <linux/types.h>% N. u; |0 I: j4 J4 r6 E; O' R3 G
#include <linux/gpio.h>
  f$ L* }) s: ^1 ~  x' D/ _#include <linux/leds.h>
0 q1 }" Y1 z3 J#include <linux/platform_device.h>; z7 N5 q& u9 q
) C1 E$ l; h  ]1 T
#include <asm/mach-types.h>: _: V% }  o5 w' v5 v+ L8 k
#include <asm/mach/arch.h>& i: W: Z5 v% |
#include <mach/da8xx.h>
. [& `" c. o' M2 ]0 j! e3 w#include <mach/mux.h>
$ Z1 b8 Z& V' Y# @: w6 ?: Y$ ~7 r, U+ K: @" P
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ F, H, @. a# j% C. B#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 f, w1 ^8 e. x#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% i, \% C9 F  y- ~. Z. V  g#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 v/ `9 U) S% R% Q0 L+ S$ Y9 H, c3 i/ i# u8 d, {
/* assign the tl som board LED-GPIOs*/
" b" e5 K% H$ F, u* ]& _* K2 Q. qstatic const short da850_evm_tl_user_led_pins[] = {
' W3 ~6 ?/ h7 a3 z7 C        /* These pins are definition at <mach/mux.h> file */
' D: k1 G( p  U: j  `, _, j$ g6 B& V        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," z' E% t/ n2 g
        -1$ {8 W9 E1 r8 F3 m, p7 R5 C
};3 Y2 }3 J" L  N; b" H+ b3 i
  ?5 U1 H" y9 ?
static struct gpio_led da850_evm_tl_leds[] = {
: a- Z6 x2 [, w        {- h9 s0 R" W3 d! o9 T' J
                .active_low = 0,9 ]8 G/ \  v; W1 N1 V/ T+ A3 U
                .gpio = DA850_USER_LED0," |& L9 B- I) y! v
                .name = "user_led0",9 ~3 V6 F1 D$ q$ L
                .default_trigger = "default-on",
9 w4 V0 q$ W+ ~+ @# W" J- F        },- q6 R7 R& l3 n6 y
        {- K' B) k: @" h* m
                .active_low = 0,
1 i3 X5 r+ g( y                .gpio = DA850_USER_LED1,
- U; k" C  P( t5 a$ ~# R                .name = "user_led1",
4 X: n- L  m' l/ d7 F' t. x& `                .default_trigger = "default-on",6 r" {4 N7 a; W, L/ |, `" l$ n3 h* b" U
        },9 f& h6 w* m1 J- g: ]
        {
+ A+ w8 t; L" K, E+ x" u# Q' Q                .active_low = 0,
8 S! Q7 \  ]) n                .gpio = DA850_USER_LED2,
1 I8 Z/ p7 C7 L9 h, F. K. k                .name = "user_led2",0 y; S3 c1 ?0 i0 i& j
                .default_trigger = "default-on",
; o; |) H4 c) d3 H5 k) w8 X* E        },6 U3 Z% p" L1 q' W' X" H
        {
- t# ~9 \& v; ~' }/ A& m; N& M& d                .active_low = 0,
% R# O3 l( k6 o0 I                .gpio = DA850_USER_LED3,7 }  m3 |+ v, P4 l: u1 Y( p- x6 C2 q
                .name = "user_led3",, S5 v0 u2 |8 d- B) Z/ p) _' Y
                .default_trigger = "default-on",9 ?& F" @6 M' `2 o
        },; p- I$ m% q- L& K
};# v2 S2 m4 R/ q7 f& d" e8 d

8 O6 m% Q3 C' `" fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ t" Q8 J6 z6 _! v
        .leds = da850_evm_tl_leds,
9 n+ h+ T* t+ ?" _- B/ x% R: D        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. j1 L% `; l/ R+ Z) t};0 Y: }: Z4 _0 h) W
& {" b& _' S6 o- [
static void led_dev_release(struct device *dev)
7 S' ~0 f7 I6 f; x& P( t9 U{- B6 C: M0 o* b$ g2 L- O5 a
};6 j9 s( R7 M2 k
3 H( M* o7 u* Q9 W3 i, v0 i
static struct platform_device da850_evm_tl_leds_device = {2 g, @3 `- z9 ^1 N; T7 _
        .name                = "leds-gpio",
8 B, K' G- R; n% X' r  ^  ^        .id                = 1,
7 ^' U9 }) @! `        .dev = {$ w8 M1 y. f5 B7 j0 F" p& E
                .platform_data = &da850_evm_tl_leds_pdata,: `! Y% v3 b# `" p1 I7 ?* Q
                .release = led_dev_release,
; a8 U- a0 g/ J( P) I        }
) [& E! f) t! r# G" q2 u8 v};
& ]# B% m0 S" ^: y3 k5 J. N# \* a& S' B; L
static int __init led_platform_init(void), R9 f7 T0 K, j
{
* a, F4 k( j2 _! j+ W) D        int ret;* q- C, H  O- v7 x8 L
#if 0. v# G! t3 u6 M2 Z, G
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% S7 K- `1 ~' E1 j# q5 x        if (ret)2 R8 I7 A* n0 T( v: D. {
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ s+ b) q0 `# Z; y/ v                                "%d\n", ret);
8 g3 U/ K& J, j+ k, d# t' t#endif
& z! Q6 ^) o4 d: F. @: `5 U3 V        ret = platform_device_register(&da850_evm_tl_leds_device);
( p9 B+ E0 s5 j! S- r        if (ret)
0 O6 {; S: N  \1 Z                pr_warning("Could not register som GPIO expander LEDS");
: }4 ]9 @: |# z/ N        else# r& z# r5 a' K, r
                printk(KERN_INFO "LED register sucessful!\n");$ x- v% g% d: l

9 H$ S7 b& m, a& r. N3 _* f, [        return ret;
7 E- v7 S! O/ O7 Y% ^- M}
0 C8 l1 L1 q% d  |# j3 M: ?
( ]2 f. S7 W8 }3 M7 jstatic void __exit led_platform_exit(void)
# |% a9 ]/ E. S/ |8 R{
+ @' ?7 ~1 A. ~( q        platform_device_unregister(&da850_evm_tl_leds_device);
  f/ S9 z# i8 G) }: c$ N% w4 A( R
$ p5 \5 r: U0 G6 n: j5 e8 I        printk(KERN_INFO "LED unregister!\n");
9 h' m) r; I+ W) I( c}
" v" C- D7 L2 ]9 F& [" B
& U8 f& @" k. X+ I+ ], j  H2 imodule_init(led_platform_init);2 }$ C# [' `% U1 r# @0 W+ w
module_exit(led_platform_exit);- e* [6 n8 p: M# v( P7 ^
8 {) J$ D! n/ U3 N# A( D& Y+ I
MODULE_DESCRIPTION("Led platform driver");
' g$ l0 ]& h  P2 ~MODULE_AUTHOR("Tronlong");
$ r" a4 G: K$ r6 Y4 T) tMODULE_LICENSE("GPL");' o5 b/ Z: n" V) B3 B( I
; o6 N3 ]1 j3 H: ~& i6 T. ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-15 02:03 , Processed in 0.041246 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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