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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 [; G+ u1 i+ o0 K8 c#include <linux/init.h>
; d/ x# r! u. M  ~8 C#include <linux/module.h>) W# Z+ f8 z8 Q8 m4 l, R( E
#include <linux/kernel.h>/ p- z! F2 ]1 c
#include <linux/types.h>
6 o# g1 }2 o; E, }; `( y#include <linux/gpio.h>8 E0 s% t) ~! P$ p" H" y- ]0 @
#include <linux/leds.h>; j: x& y# q" l1 ]$ P9 e/ T
#include <linux/platform_device.h>
* ~$ h0 T7 _( D6 }- a5 ?* E; J7 I5 i" J7 W2 _* L
#include <asm/mach-types.h>
. T+ W3 @7 t2 q2 l. U4 D) g! a" {4 F2 s4 A#include <asm/mach/arch.h>
( H7 G4 P0 e* k( W#include <mach/da8xx.h>  d% j+ F, ^4 ~2 o& I. I
#include <mach/mux.h>
$ {" }! L2 z6 D8 U# y' I% T" I! `* z5 }$ D$ @$ _; N! W5 q1 d
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 u. Z" j4 w1 g
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 W1 Z) s4 t7 |' \/ z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" D( g6 A  ?" A# u8 {& e2 f7 H8 h. }
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ v  t8 ]$ I* q  P

' B( t/ H. [% y: B" q" O/* assign the tl som board LED-GPIOs*/
3 ^3 `3 m8 @' I& P& \static const short da850_evm_tl_user_led_pins[] = {1 R0 S% I2 k5 g) T' R& K
        /* These pins are definition at <mach/mux.h> file */
  S! I- e! f& r, [$ _+ \        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ V7 Q* y9 P' }1 |( h) l6 W
        -1# l. F6 c- C( E9 ~" o+ Q6 M
};" `& Z# n3 R3 T6 N) D* E

/ n+ S+ A- X- |! b& vstatic struct gpio_led da850_evm_tl_leds[] = {
8 F: T4 z! Z4 x3 V7 p# i. R        {
  k3 W. X+ j% @7 @: \                .active_low = 0,
# k! m0 g1 O- v! n                .gpio = DA850_USER_LED0,/ f' a& j5 p7 ~4 G
                .name = "user_led0",/ B# M- Y2 B9 I* f; W  G' w0 @
                .default_trigger = "default-on",
* j$ E- T! s! Y+ t: q# G        },
1 @4 {, @7 F1 b" Z1 c, h, `        {: T/ \% i& o7 \! A/ s# m* Y6 s$ Y
                .active_low = 0,
* o1 F9 }. p  S+ Q1 r                .gpio = DA850_USER_LED1,
: j% |, X8 b1 e$ b; ?; R7 d                .name = "user_led1",: N6 n  {# r- u/ v* L* P, j
                .default_trigger = "default-on",
  j! A( ^2 Z, T9 b1 M# [        },
1 J7 v2 V" {; B+ X1 f        {
% P2 X- {! v) f, U2 ^) o7 k                .active_low = 0,
) q) ~) [6 [, e' [                .gpio = DA850_USER_LED2,/ f0 W& ^* P$ n
                .name = "user_led2",
: d( W. J; O1 p2 `+ Z0 D4 y                .default_trigger = "default-on",
# K( T: o8 h2 Q1 j/ G2 H        },
; u; |" i, C  Y, b% T& Y, M        {. c) v; A. X6 q! X8 G
                .active_low = 0,# n0 |0 t$ W& H1 [, t/ k) l6 n
                .gpio = DA850_USER_LED3,: {7 ~% F! B/ X$ O& d1 T
                .name = "user_led3",3 i# t4 \5 t, Z5 ~/ T
                .default_trigger = "default-on",' d( K0 H7 R; S0 ?* A- _
        },9 n. u2 P# B1 j! K4 a8 J0 S
};
, s$ ]/ R5 g* s$ D4 W. G% w2 c; J& I
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ A- R7 x& ^- r1 a+ P        .leds = da850_evm_tl_leds,4 e+ n3 L& @; O; {
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),. Z! I* F: y2 Q$ N7 g5 K
};% j/ d) S7 _6 w! o' ?3 ~
, J/ Z' B' V! Y6 a' c- n7 `" D
static void led_dev_release(struct device *dev)) @7 h; Y0 D% t$ \
{0 {5 D; l9 T! F" u
};
1 M) n; J' n* G2 v8 q6 F: c* f  E3 W9 ?( U3 _( {  y
static struct platform_device da850_evm_tl_leds_device = {" J0 o& ?7 r8 D, c
        .name                = "leds-gpio",
2 ~( W! p* t4 h) b: i4 u9 @$ |        .id                = 1,7 ]1 c5 i4 b; S+ B- \+ U
        .dev = {+ u' W& L& j3 p, i! J
                .platform_data = &da850_evm_tl_leds_pdata,
, ?9 a  y. H: |! e( h                .release = led_dev_release,
; |$ w+ Z0 j0 n        }! N1 x) {& U7 M" J0 Q. m+ Y- ^
};5 g- c' j8 O6 k; E$ A# o
* k- e) I2 f* ]9 `+ }
static int __init led_platform_init(void)
) ?- T/ m5 r5 l. N9 }{
" V% i# v7 H8 Z& z: G9 _0 A/ o/ R        int ret;7 T5 J( c" ]! u' a* T7 F- R& Y
#if 0" @+ e; ]2 h$ j/ ?% M
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 y( X( j  U( M/ G7 J
        if (ret)' K0 K: e! M. l9 J
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 z% ]% T  G/ M& m( l$ a
                                "%d\n", ret);
# W1 z: p8 T) `#endif& ?6 u/ M2 C) C0 y
        ret = platform_device_register(&da850_evm_tl_leds_device);
; Q  z9 `6 I' |. ^" b  k' ~        if (ret)
/ c- W9 G: q, I3 F$ ]                pr_warning("Could not register som GPIO expander LEDS");
) r9 O6 l" U  a. ~        else
0 s$ L7 M+ N8 z# [  A' V) H( y                printk(KERN_INFO "LED register sucessful!\n");1 R& e& ?& e& w: b+ h
) v: s1 a" k# H( o- `# M: C
        return ret;
* J- f; J% v- H) o}
" h' N. k" u# `/ p$ b
( q' {7 L5 O/ T# }4 I" h; p1 dstatic void __exit led_platform_exit(void)$ {4 R6 b- v6 `& S$ v$ U8 o
{
8 @1 S  {! L" n- E8 ~        platform_device_unregister(&da850_evm_tl_leds_device);4 f) U2 X/ T7 C, n

2 P7 n, _$ }" I4 x        printk(KERN_INFO "LED unregister!\n");
4 `6 C( s; t  O1 X4 ?: E2 v}
: w# M0 v/ b. `5 C: H7 `3 L* M, T  G; |  W) Q- j7 o" N6 g
module_init(led_platform_init);8 _" l! n, o2 ?
module_exit(led_platform_exit);
5 `3 @: \$ {7 N2 V% W8 S% G/ v& i, K% H( h+ ~, V8 s
MODULE_DESCRIPTION("Led platform driver");- R) c  a  t$ t" c6 D
MODULE_AUTHOR("Tronlong");
  g( A4 ]3 V: B/ ?  Z( q9 rMODULE_LICENSE("GPL");
6 [3 W$ n& Z5 U+ r" S
  o) ]% _+ W2 J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-18 19:06 , Processed in 0.039835 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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