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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- \9 b$ D' Y8 i5 M#include <linux/init.h>/ [- O3 X+ ]- y4 p8 N, j& w! T/ [
#include <linux/module.h>3 |  C/ I  x/ m- D! K) Y
#include <linux/kernel.h>% l: ?" D/ Q# u+ x4 n6 j+ `
#include <linux/types.h>$ t5 [$ D/ z( B( L2 e
#include <linux/gpio.h>
6 Y5 C& r  z; N9 d9 `: @#include <linux/leds.h>6 C' S6 i- g0 H: i$ i
#include <linux/platform_device.h>
8 ~# g+ B6 c% B4 m0 f, h5 ^
8 m6 |) N% h! l#include <asm/mach-types.h>
5 [! j0 t# Q0 G9 q9 {! h% v' B#include <asm/mach/arch.h>
5 `( @3 R" R  M6 [( E7 s  \; C/ G' B#include <mach/da8xx.h>
- x5 I/ E& z! }- k#include <mach/mux.h>! ]0 @8 x4 S" h! _' _5 H2 Y

8 P. I* P3 P6 [% D. p( p#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 u" b* x+ V6 r1 q# k( F  P2 |#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# H9 ?6 y, Q! W& x1 x5 O/ _6 }  z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ w7 Y7 U* d5 z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)8 M' \* w4 Y* @- C- O# c
6 e0 r% Z, l$ w/ {
/* assign the tl som board LED-GPIOs*/) {/ T  Z  Y0 e; N% J7 h
static const short da850_evm_tl_user_led_pins[] = {0 Q8 e4 m( N0 t: a0 {# A
        /* These pins are definition at <mach/mux.h> file */
& S, W' [9 @& V) N" K        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ {2 c$ Z' W4 z$ H7 Y        -1
  ]+ U: S+ F( {};; l6 E! }& }3 {9 V+ B
# q+ Q1 {( y! R# N
static struct gpio_led da850_evm_tl_leds[] = {* F" _( }, y4 j* |2 ?2 m# l
        {
6 ]) D4 R8 f. Q/ e$ u. a2 `  @. x: N                .active_low = 0,, p7 k( U$ M0 X' p+ M
                .gpio = DA850_USER_LED0,7 ?( B  _( P4 M7 r9 `  P
                .name = "user_led0",3 a6 q  E$ E+ r4 m3 J( k6 Z
                .default_trigger = "default-on",5 s2 W. l$ F- W  b% e
        },9 C7 f- ?( N$ \4 i  i) ~. C& l
        {
+ x/ n! q# b& s, ]                .active_low = 0,3 d, b5 ^% q) V1 T
                .gpio = DA850_USER_LED1,+ T2 l/ r$ t$ S" Y' B; O! }
                .name = "user_led1",
, t/ H4 i1 E( s# U$ ?' h* y% T* e0 ^" q' s                .default_trigger = "default-on",4 h# Q: G/ A+ w$ h
        },0 N! Z' Y, k, `' S. |' P7 d
        {
) u' q6 X2 O4 Y8 m, B! m                .active_low = 0,, G' }* C  f6 _" B. Q$ g
                .gpio = DA850_USER_LED2,
6 g' a3 x! W* W' R" _7 l* i+ u& B                .name = "user_led2",
* w2 H3 Y) n8 L0 |* g                .default_trigger = "default-on",
( `  g! q5 O, Y* E. j6 G        },! j( y) f' {5 L! ~/ c  p( F1 S
        {* P; _8 L* J: x! f
                .active_low = 0,
" U* g. V$ ]# T3 p2 U1 {( j  }% b) m* @                .gpio = DA850_USER_LED3,
% b& {1 p: f8 T4 i; W                .name = "user_led3",; v' I7 ^+ E( C2 c' O  B+ z
                .default_trigger = "default-on",
! j9 B5 p0 B7 x        },; X$ {6 T7 e- o
};
$ P4 g6 X0 u' F; r% M; `" o7 ^6 f; ?5 A; ?6 {$ Z: c, V! E
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 j* J0 @2 ?$ R0 R  P        .leds = da850_evm_tl_leds,9 R9 ?3 e4 N3 I0 w* T' O% Q) A
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 X5 R4 o8 \9 Z; O
};
4 ?" M' [4 n6 @6 I" {% i4 d; V
0 Y/ U& l# A- ?! nstatic void led_dev_release(struct device *dev)
: t+ L, p" }+ a  V8 J8 O7 o{
6 B% [( [/ Z" M# e7 p. v3 p) h};& }( Y" L. q2 a% O9 M" f5 k: d

6 }4 d% d/ Q2 }$ {# Astatic struct platform_device da850_evm_tl_leds_device = {* u; X% A5 U3 E6 h6 j) ?* }
        .name                = "leds-gpio",
. Z$ W2 s( T' e( R& c9 L% u0 [% o        .id                = 1,0 B7 K. G0 @5 |: s5 n( x7 S
        .dev = {% B7 }0 ?( s; \3 ^6 s8 Q
                .platform_data = &da850_evm_tl_leds_pdata,1 R9 H% M; u& @+ c5 \3 V4 k
                .release = led_dev_release,1 ^5 R. k! z/ J4 v
        }& E7 G; W. A% s& m4 c
};# [0 G2 r) W7 E
- u6 E1 G# K2 m. O  S8 ]  B
static int __init led_platform_init(void)( N6 q" n: }  S' n
{
9 [) C8 ]0 |6 z7 [# b- m, ?        int ret;
# r6 N/ y/ V) E3 v& y#if 0
! e% e1 g- d" j3 \7 I        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' R( j; k+ C: v  l6 O- I
        if (ret)
2 L& H7 n" W, r$ s+ m" {0 d                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": H# v7 c2 C9 v5 v% v2 }
                                "%d\n", ret);; ]  o9 C6 u: `
#endif* }# ^& Z9 s5 R: O! r/ ?
        ret = platform_device_register(&da850_evm_tl_leds_device);  Z' O# R( O2 k, {3 Y
        if (ret)
' r/ [/ }1 |* D; Q                pr_warning("Could not register som GPIO expander LEDS");* ^$ m3 C8 u' A2 p0 s1 I# C! K
        else$ h9 j5 d4 r$ g+ k& |
                printk(KERN_INFO "LED register sucessful!\n");
3 c  s+ m: _2 n# b8 ]0 _3 p$ N; S( j" i
2 [( z: q6 e1 y) U, j        return ret;; I2 n$ B" D1 u4 i
}
6 c5 ?5 g0 b3 i9 @0 M5 z# F1 A  s" Y. y( a' `2 \, R* G
static void __exit led_platform_exit(void)' E3 R& ^- ^4 [1 f: H& [
{( ]) y& O6 S! A, S: b3 y! V
        platform_device_unregister(&da850_evm_tl_leds_device);5 d( i) X' ^& m* j8 ?4 W4 S1 z2 {, P
2 _3 @* [( P9 ~. ~
        printk(KERN_INFO "LED unregister!\n");
% l" z. x! X8 W$ [- B}; u3 Q( d( w# r( ]4 L

. H- c0 ?5 W! f1 k0 `2 n1 jmodule_init(led_platform_init);5 z! c9 Z! \) p; l! h; Z# b$ b+ A3 K4 r
module_exit(led_platform_exit);
! T( l- j# M0 ]( M& e2 q8 j( U2 v# g* N
6 A" ~& _& U9 ]+ ]& z0 c, c$ ZMODULE_DESCRIPTION("Led platform driver");6 L; Y6 P- K4 ~4 p4 f+ l
MODULE_AUTHOR("Tronlong");
% x& }! w3 P0 cMODULE_LICENSE("GPL");
* ]8 b/ X+ ^) \  q3 g
* x: ?( k: C& Q/ N4 K2 S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-22 16:42 , Processed in 0.038520 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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