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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, ~; c1 g3 {: S#include <linux/init.h>
/ Y9 B3 y5 A- [#include <linux/module.h>4 Z" y* c/ G& i6 ]' b
#include <linux/kernel.h>
$ U$ d: O4 M# @  j( f% T5 A#include <linux/types.h>
4 k0 {8 ~' S% B- d#include <linux/gpio.h>
' o* Y3 v- ?( K1 t8 U#include <linux/leds.h>' v) e2 S( A! x, a/ S, x" i  G
#include <linux/platform_device.h>
6 z7 a" y5 l5 j7 ^8 u3 a( q6 l- `
#include <asm/mach-types.h>
7 v) z) q1 u: W$ P$ {$ R#include <asm/mach/arch.h>- z" |2 D2 a  _9 u. S
#include <mach/da8xx.h># x: ]! w$ s( I7 b- n0 r! J5 v* T1 c. X
#include <mach/mux.h>
& b5 g7 K0 p9 E5 ]
. F8 q6 n: o* g( o1 R2 V. Z; U#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 [7 N$ d6 G9 O& u$ U* Z6 j#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 y( u% \  K2 o* a" Q- ]7 y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
* h& R5 [6 X4 }, c#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), u7 G! g+ {& K0 L
, W' S1 Q, k, J! u0 H# @
/* assign the tl som board LED-GPIOs*/* |+ i' `9 X9 Q! i9 @) O. h
static const short da850_evm_tl_user_led_pins[] = {( q0 g( V8 |4 g3 A4 p4 Z
        /* These pins are definition at <mach/mux.h> file */' d/ N/ j' m2 \2 Q! g0 Q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% e9 b( g: J  @
        -1& Q6 k7 j9 r( x. i. w9 L
};, q: E( L' J& t( V6 {+ G
% `; z7 q9 v' B$ ~( r' T. v
static struct gpio_led da850_evm_tl_leds[] = {
! r2 @4 [5 @7 j# X        {
3 I4 ?& p5 ]1 O! E" J* \                .active_low = 0,
% w- d) `! `: C( E                .gpio = DA850_USER_LED0,1 C# \* x, k7 l8 ?# }2 u
                .name = "user_led0",, u* g3 N) F9 g& O
                .default_trigger = "default-on",! t# ?, {- m. D$ g' e3 g0 Y
        },7 M- a& g  C8 j6 N1 L- o
        {- ]7 k4 d- B6 _0 s- X& n
                .active_low = 0,& j, l% e% }% v. B2 f2 u
                .gpio = DA850_USER_LED1,+ q8 q9 K  ^, x
                .name = "user_led1",
6 R% V4 J! M- [1 T7 R) B                .default_trigger = "default-on",. H6 E  l2 v, \$ @7 s$ G/ j+ g
        },, q5 t/ Z1 l, c8 X4 d5 Q' i4 Q
        {+ `5 `6 [: L" Y8 a/ R) O8 F2 r
                .active_low = 0,
" M) U# ?# d3 G5 n; H                .gpio = DA850_USER_LED2,
* I( K  d" n6 B  J                .name = "user_led2",
  x5 a0 o9 P. A+ \                .default_trigger = "default-on",
; y8 q. A; d5 z0 x" a        },
9 y) a8 f0 n  W3 D; N/ @/ N1 ]' J        {, `5 F8 a6 [- l
                .active_low = 0,  p7 P' u! x" O
                .gpio = DA850_USER_LED3,3 s2 H* D9 n/ e( J0 d6 C- w
                .name = "user_led3",/ y, Y9 W' i) q7 G6 B0 u8 V
                .default_trigger = "default-on",) H5 @. s5 Y1 v2 S% v
        }," u0 Z& x! k2 a: y: G) G9 m
};6 D6 Q, l9 v2 G. b

1 W0 j3 `+ F/ p' e' y4 jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) m+ B8 K# p/ h4 j6 ]* h        .leds = da850_evm_tl_leds,: [5 p+ z; i, k4 s0 w" ]
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 M/ ~7 Z, _* X2 t: G};; |7 ^" f; {/ r% {

2 b$ N/ w- I# j( d4 Y/ U0 J; tstatic void led_dev_release(struct device *dev)' B9 W7 U0 {7 o" R* U
{
: S, s3 B5 b/ }' Y! p};% b2 m* L) `  X

  K3 `1 V2 T2 f5 e) b# L1 Tstatic struct platform_device da850_evm_tl_leds_device = {
5 }" R4 ?9 L$ D        .name                = "leds-gpio",3 q- x# `& A' A: U
        .id                = 1,
8 {) k) t1 S' J) T( `0 i0 I' ?9 L        .dev = {
& U) l/ p; {# [: u  Z) V9 |$ w                .platform_data = &da850_evm_tl_leds_pdata,
. O4 k5 d; r' B/ Z                .release = led_dev_release,
/ b  ^- ~9 ]0 R% z        }
6 {$ a$ q1 J: w4 I! K, a};* ^' c$ i! Q: ~6 _- B( S: @
8 r7 H; N; }7 I9 N5 ?
static int __init led_platform_init(void)
2 i! D. a/ M* |- K8 H+ {{
3 E' W8 x% D* l2 y" t        int ret;
8 ^$ L$ O- i4 _# u2 t#if 0
6 U9 U1 k& d- @# W6 f3 J9 Y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  k( X& w7 [' |( n3 d        if (ret)
0 ?( D8 Y) G" L5 J                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  p2 [( @3 W- S
                                "%d\n", ret);
( y7 F7 D2 L1 Y( w#endif& T4 {2 F( K; G
        ret = platform_device_register(&da850_evm_tl_leds_device);$ _( b( `4 D# h
        if (ret); `7 i9 J6 ~. {4 S$ r: n
                pr_warning("Could not register som GPIO expander LEDS");. q% o, C9 a: ?& j7 g* U
        else
5 w  v7 w, b5 ^+ m, l2 i                printk(KERN_INFO "LED register sucessful!\n");
$ N; y0 ^0 G, D( N5 ]6 Q- v* E' c$ p- }9 h# f4 K# Y3 B
        return ret;6 {; a, t8 }* y: ?
}; J5 Q0 y% N; Q

$ D) i1 K( G% w2 y- Bstatic void __exit led_platform_exit(void)0 q5 x. h* L% N- G9 \) e7 J. s$ G9 w2 @
{) v. L( I. l6 b6 I
        platform_device_unregister(&da850_evm_tl_leds_device);: J" [0 R. c/ v) `0 i( h
; _! y! N% R, i5 V* n1 ^
        printk(KERN_INFO "LED unregister!\n");7 ?& N- ^+ Q& o3 t& r/ ~5 p0 z0 ^
}
; M5 v3 p' ?3 s8 Q+ t- t
( C1 e( y6 [1 R7 O2 Imodule_init(led_platform_init);
1 a8 e# _9 z9 umodule_exit(led_platform_exit);
8 _: r7 H& y$ o/ T: z) a, t
% p. A1 z: B+ QMODULE_DESCRIPTION("Led platform driver");
* [) D; N! z: ~/ p' ]: K6 I: TMODULE_AUTHOR("Tronlong");
. o2 |* ]: V$ S3 [9 I9 F1 zMODULE_LICENSE("GPL");2 [0 n7 Z3 r- d* E0 i% \) ]

& [$ T# }/ j3 N9 B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-5 05:30 , Processed in 0.055228 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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