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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, A) r; u$ T$ @5 h; f#include <linux/init.h>
. i; y3 s' P' k: `5 {& ?3 ]' i#include <linux/module.h>0 i" b" k- u1 Q: y& Y8 N$ w: Q
#include <linux/kernel.h>
6 J4 W* t1 V9 h9 H; k! W#include <linux/types.h>
# ?1 m! M2 i+ X#include <linux/gpio.h>
+ K: W$ n! P% T; s# }/ w8 s#include <linux/leds.h>4 B2 F$ I* J2 @2 |2 J6 G! E
#include <linux/platform_device.h>& R8 Z) I7 g1 C: K
# z7 e. l, W6 j* ^; F+ c1 c
#include <asm/mach-types.h>
2 M7 T, n0 O( t' C9 \0 m- j7 M$ N#include <asm/mach/arch.h>( {, D3 J5 Z# I) E$ H" T7 y; s& ~. |+ c+ K
#include <mach/da8xx.h>
" p2 V- D# r8 f5 a4 ^; j( X#include <mach/mux.h>
1 r* Y3 k2 t1 h# W; x8 z% U$ F( N2 |  J& @
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) v+ {* f$ E7 q: K% Y" G
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 Z# `" l, U) C! E6 }
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 J9 q+ J) ^8 L, V#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% t9 u4 G. f1 {
8 W, N  \2 z% I2 W/* assign the tl som board LED-GPIOs*/5 h  Y6 ^7 F' T6 _" y( a8 e
static const short da850_evm_tl_user_led_pins[] = {2 H/ K8 @  V6 ?& D, i5 O
        /* These pins are definition at <mach/mux.h> file */9 c  Q& v6 \0 b9 F4 q9 m
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, x5 t! @- L5 f* d$ u4 F& y% f7 V        -1
$ l1 k- b) h( N/ B, [" W};. o# a# _& ^* a; }4 A
9 @* j8 ?. x0 X( X( c
static struct gpio_led da850_evm_tl_leds[] = {
) j  p; o8 m( |5 X        {; a* H- C- X# O9 z& n
                .active_low = 0,: f9 o2 k* d; b2 E( u; D0 r
                .gpio = DA850_USER_LED0,
5 h# R" Q: m. w% S& w                .name = "user_led0",4 |! G- g0 S( C  J; ]* B' U. O
                .default_trigger = "default-on",5 h' A/ z/ T5 N/ _1 Z& Q: ]& V# C
        },
( ~* r) m0 L4 w& U& x& [! L1 M        {, X# X& g1 Q. E
                .active_low = 0,
4 ?& |  A, j( s                .gpio = DA850_USER_LED1,2 z% |2 T# l6 ~7 j! \
                .name = "user_led1",& i, F# t6 a' ]( u
                .default_trigger = "default-on",
4 Q- y( o2 Q$ j" I3 p# K2 o. H- C& a        },5 y( _1 [3 U3 |+ n% S
        {
6 ?! N3 P5 n. z, [9 m                .active_low = 0,
1 v6 Q& }5 b3 H8 L1 {1 }                .gpio = DA850_USER_LED2,) l' `& \4 j0 P! ~: I6 j  ~
                .name = "user_led2",
# k" K& }& ]* }7 y8 J9 N$ U                .default_trigger = "default-on",
7 i  G; o+ y/ [! ~: L( m9 X        },/ f# N  g. G/ E) v
        {, M1 U5 b. c; O! i  G" p
                .active_low = 0," d2 k7 T& [- L5 @! l$ \0 @
                .gpio = DA850_USER_LED3,+ V$ O8 [+ m- J. c1 M( n
                .name = "user_led3",
% l& ~8 c& M9 |* i' S  _: Q                .default_trigger = "default-on",
$ \8 v( I4 L1 a+ R3 N  \$ C# s# _        },* b* E, H& Q$ i, s) I$ \( s: b
};- M2 ~: ^1 u- r$ Q& u5 C5 |0 A  `

  E* B' C1 h1 I6 @static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- E1 q% P6 A% }8 D4 I        .leds = da850_evm_tl_leds,
+ |) q1 K+ d, d; s8 _+ o+ N- B" [' V        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 u" E9 p0 [) r, D9 ]( L+ F  {' s
};) G2 f$ V: R% p- D5 H7 U

6 |  l0 J! B) |) }8 M$ gstatic void led_dev_release(struct device *dev)
6 U( E9 C, @) m/ p2 L{
& a( g- p; V/ D% `7 a};
8 _1 p* L" z3 ^: o# b; U
* R2 K) o* o- b# s  _static struct platform_device da850_evm_tl_leds_device = {
% G2 y. n9 E! U. C$ n( k        .name                = "leds-gpio",
  {" o% Z9 Y9 h0 s/ A! M        .id                = 1,9 L, R  \' b" t% k0 u( Q7 N
        .dev = {
& _; q  ~1 y8 P* a% j! ~                .platform_data = &da850_evm_tl_leds_pdata,* I$ N7 X- {8 O3 S2 d: m
                .release = led_dev_release,! c6 n7 t; v  y
        }
1 x" r$ a1 P2 z- x};
5 i: l/ x8 |$ a/ E
6 q, m7 w* _$ pstatic int __init led_platform_init(void)
) _1 T. s! L6 L6 V6 S{
+ j6 D2 P% U! W) ^; ]        int ret;
5 F/ T  i" M0 n: M2 J#if 0- h7 Y. {# A+ H( }/ o! A$ `, v4 D
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& L- o. C& S5 y6 L        if (ret)
2 I" A' v& d+ q+ F9 o" i9 Y2 g                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% ]3 [3 E. M. X0 L6 Y6 ~. b
                                "%d\n", ret);6 m  d, ^6 z6 g) J! a* L. M4 p: e
#endif
/ x, M$ d  v* F' T* l        ret = platform_device_register(&da850_evm_tl_leds_device);; C0 P4 V" W/ L! `0 [0 p% L
        if (ret); v3 l+ i: |  ^$ V6 _4 r
                pr_warning("Could not register som GPIO expander LEDS");
/ Q+ L& c; O$ L1 x* ]        else
/ }7 U- c& v+ Z5 Z* n: B                printk(KERN_INFO "LED register sucessful!\n");( ?4 v* _4 h5 t8 s6 ~1 ~% E. u$ H

* G- k' K/ j: x" V/ L7 i# `        return ret;+ e! k" e+ t4 ~; x7 a9 E) \; _+ u
}
/ d6 p" k" q/ n" n( B% I- V) ^! p$ V, z' V2 y7 w
static void __exit led_platform_exit(void)
' X# l1 Q7 |: }0 [4 u6 _{
% j6 Z; P' n: \, Y$ T5 j% [        platform_device_unregister(&da850_evm_tl_leds_device);9 S& ~/ {0 R1 A) W
  L" `2 f1 {" x5 C
        printk(KERN_INFO "LED unregister!\n");
; I7 `% B! O) g}$ F" B/ h5 q* U& G8 R' _

3 t# N6 T& b* o' F2 Omodule_init(led_platform_init);
1 b% n* ], V% G/ h; L+ c9 O9 ymodule_exit(led_platform_exit);
) E+ p- u' Y( i& h/ x5 B* V( h" k) p% p
MODULE_DESCRIPTION("Led platform driver");" ?; r( G: S/ P, ^
MODULE_AUTHOR("Tronlong");
# }% j6 Y' }- ~5 o& LMODULE_LICENSE("GPL");
" |, i! I9 |# b& O4 Q( z
0 j! ^  [8 o6 _9 H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-1 13:04 , Processed in 0.037362 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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