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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 U0 g/ Y' r- U5 e
#include <linux/init.h>7 P% P* i( A. t3 d; D* D
#include <linux/module.h>
  I; S) J) }1 X: X1 a4 S  }) U#include <linux/kernel.h>5 K1 |3 G8 c% M- @/ h" B5 q
#include <linux/types.h>
  g5 z1 L) _. j; ^0 r#include <linux/gpio.h>
4 y! Y" y3 N& @3 d7 V9 c* z#include <linux/leds.h>9 G+ t4 F3 H- g1 }! r- \% z3 }2 k
#include <linux/platform_device.h>
5 s9 R  O7 a: I
, N( D9 C+ X- J1 g+ I- h8 A$ y* O#include <asm/mach-types.h>8 F$ b1 W+ J, h) \" m$ @
#include <asm/mach/arch.h>5 @8 R5 g7 I- F7 I3 L0 T
#include <mach/da8xx.h>
* b5 ^8 b; i9 ]' J* l#include <mach/mux.h>
* [  ~) B* e) N! z. q( n9 x7 a0 z; Y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% e* x5 X8 N& h  q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& ^- `0 m9 w9 e$ `
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 q( B" Z- u5 {- F* z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! t0 a3 ^3 k. Z1 f) v3 x
5 `- g9 F% W4 w* z* g1 `
/* assign the tl som board LED-GPIOs*/- z; s) _# Z7 u
static const short da850_evm_tl_user_led_pins[] = {8 b5 ?( V' W7 A! X
        /* These pins are definition at <mach/mux.h> file */* v% ^) S$ E5 k4 z+ P
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ m. J: D! @1 m3 C
        -1; V9 m4 H& a! x. }6 U1 t
};
0 e- L3 b. X, P3 B; q9 p* }, i1 m* y& U, `3 r2 Y/ r
static struct gpio_led da850_evm_tl_leds[] = {
# o" c3 x( g5 Q4 u        {
9 ^7 ]# [1 j& U2 W1 i                .active_low = 0,! |) g' z) O3 L
                .gpio = DA850_USER_LED0,5 L$ C; Y6 l7 R. s" T( r
                .name = "user_led0",9 W$ h" d- e* k5 G6 q
                .default_trigger = "default-on",
8 _! [! K1 R* l. l# A; G/ L        },
9 o2 N# Y, Q! I5 |# S7 L; H5 k        {
+ r, T" `# g( |5 [8 z                .active_low = 0,
' Z" d7 X6 d# p5 `9 L: T1 g                .gpio = DA850_USER_LED1,! D3 ~5 X  [- s' W" j( H4 P5 J: v
                .name = "user_led1",3 D% e' X! O$ v6 |3 |; p6 X
                .default_trigger = "default-on",
' a8 v0 O! r, w: Z        },6 o4 x* q/ c7 r+ i% k7 \
        {4 H8 }) {! y% u2 d# R
                .active_low = 0,
9 o4 k6 ]4 I" ]6 J                .gpio = DA850_USER_LED2,
: X' x7 O, U: n, j: f. ?4 e" c                .name = "user_led2",& q6 H3 v( A$ o6 O5 b3 k8 U6 z
                .default_trigger = "default-on",
, W  K7 q7 X8 R3 G* E        },
& E3 p1 X$ {+ G' [9 r        {
2 |: l% U, _( a& c8 o7 v                .active_low = 0,
1 |1 C- ~1 ~  ?                .gpio = DA850_USER_LED3,
( I" L& D; x/ o; C. {/ d) Z                .name = "user_led3",
$ ~. t! u' c5 y7 f1 A                .default_trigger = "default-on"," ]$ k  g& s( k; t2 N
        },  @  `; N) u$ {! g! Z; c+ _
};* d) A# y+ W. z: r: ?  b) ^7 Y( _
# L, H, P& Q+ Z7 c6 z! f
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 j$ {2 `% C: B% C$ s* u
        .leds = da850_evm_tl_leds,
: a( {; G& D) T* N2 W) j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. A) M! j7 u  g5 z1 D};
) R5 O. `- y( q& R! }$ \. q) e. }) T8 ^" N0 ~1 w8 J
static void led_dev_release(struct device *dev)- q4 x/ g7 T6 g1 [: m
{
  h" D3 n1 ]) D& ?};
9 [8 w1 j( P0 C1 k1 u
1 U/ E/ n) R: _3 q/ |6 gstatic struct platform_device da850_evm_tl_leds_device = {
; M  w/ s% e- Q: z/ a" Y        .name                = "leds-gpio",
7 K: h- C/ G5 y- q# M6 U& y        .id                = 1,) v: Z/ E, ^8 e  G$ l5 V
        .dev = {) y5 j/ G# Z& C5 F+ L
                .platform_data = &da850_evm_tl_leds_pdata,( I  j1 ~& _) d! d
                .release = led_dev_release,% S, s5 ~& U+ l+ y4 ?$ J
        }
; a6 t% A+ c" X5 o% z};
( v7 U  ]% |7 T9 U
! \8 i2 W1 y6 y' S* I: Zstatic int __init led_platform_init(void)) L; ^! V/ ^5 V6 C# v( B# F) D
{
* l% \! S/ p: _  m        int ret;
$ B- F5 W- c3 Y2 q' I' J  t; W/ e#if 00 |: @$ [( `* @/ }; e/ H2 Y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);& M1 A7 W) S% Z; ?
        if (ret)8 ^% i1 J$ _$ c
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& D9 \1 ~6 Q2 V" s% ]0 A
                                "%d\n", ret);, P9 ?% U8 q& `, }
#endif/ |' [3 y/ y: V" o
        ret = platform_device_register(&da850_evm_tl_leds_device);/ k' c+ ^5 Y2 a- e
        if (ret), a* N" V5 p+ v2 f
                pr_warning("Could not register som GPIO expander LEDS");( j# _' q( W; |% G+ @
        else1 y5 \0 h9 Z5 c/ a/ j
                printk(KERN_INFO "LED register sucessful!\n");$ [) @( R+ R+ C8 `; O+ U

. s4 X- t& |& G; q* w        return ret;
4 i/ @/ N' h, K+ c" N}% K2 m* f8 F, V* I5 ?/ Z+ M, ~

" E8 m" ?' x% E5 rstatic void __exit led_platform_exit(void)
; ^7 t, g+ U6 g{6 n* z: z) K& I( c& H# `# q7 U* B
        platform_device_unregister(&da850_evm_tl_leds_device);, J( ^  M' i$ k' H7 U+ |6 D

! y9 n+ N( K, X* \3 d) j" {        printk(KERN_INFO "LED unregister!\n");
# u! L, Z2 x' R' {. V}) Y; }6 I; p; }& D+ @5 U
" S- W5 G% n0 U9 g  T1 J
module_init(led_platform_init);
/ O! j9 Y$ x- @$ B, n' Zmodule_exit(led_platform_exit);
$ j* W# b/ ~3 n* Y8 @  C; e3 B  t- a) Q+ B6 S
MODULE_DESCRIPTION("Led platform driver");
( B% j& J3 ^" o1 [MODULE_AUTHOR("Tronlong");
' d. o  C" Z+ lMODULE_LICENSE("GPL");
4 i* O' v& ?8 x
' X* X1 ?6 ^/ q; F2 c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-17 00:06 , Processed in 0.039231 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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