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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。5 e) Y9 ?4 G8 Y2 J$ |5 |
#include <linux/init.h>
2 Q% e1 Z" B2 V1 R! @. n#include <linux/module.h>
5 |0 Y& T2 x  J0 L4 b" e; k#include <linux/kernel.h>
: Z8 ~, n8 b- ~7 \6 b: [#include <linux/types.h>
% B7 m7 `" S5 y% w- D* G( d; t4 w#include <linux/gpio.h>% e2 m7 ~& D8 q6 G" H! P2 Y
#include <linux/leds.h>+ ^3 [7 ?4 Y0 K8 a. N) F
#include <linux/platform_device.h>5 z6 D: ]7 b( E& p8 C1 U0 e

  M; I7 c$ T2 V9 A1 v. W! Z# V+ L#include <asm/mach-types.h>
/ J% C2 }) {2 e5 |# e#include <asm/mach/arch.h>! g. B' I8 U0 o
#include <mach/da8xx.h>  S8 z7 X/ {: p2 l0 P4 m
#include <mach/mux.h>
. h' g! J5 |# M% Q5 V1 s6 t$ p
+ v$ t5 c4 J0 H* v, V#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* R. n& X) x( A#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 D: x3 ~% ^/ {; \9 W9 z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
+ b: |0 _6 O3 ^1 l' @8 L# b#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 |0 T2 e8 h  U# w3 X

9 h  s. `: Z) h/ g/* assign the tl som board LED-GPIOs*/0 [) J' |! A" K4 o8 `" k
static const short da850_evm_tl_user_led_pins[] = {8 p) ~4 r' U, W2 O; t
        /* These pins are definition at <mach/mux.h> file */2 n$ F5 {% n' u' M* N, ~& ^
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 B0 z* o! V/ J        -1: a* z. H% l" Z5 {8 I2 \
};! [; d& Z: Z7 V% w; g
$ @- r' x/ O; B4 u, H
static struct gpio_led da850_evm_tl_leds[] = {
# K0 A- K% E1 s& }        {* F' _! A4 S% e. Z4 z7 F5 \# H( G
                .active_low = 0,& ]7 D8 R+ w: e
                .gpio = DA850_USER_LED0,5 ?* ~- T! H+ [& m: v2 q) [: @6 ^
                .name = "user_led0",: ]* @2 ^' E. ^6 e7 b
                .default_trigger = "default-on",: }& L* h( z" \9 m* @6 I  @' Z
        },0 x" X: `; _& I: m. ^. J( K
        {
; g( ?& _' @/ p1 `1 x                .active_low = 0,
, C% I7 Z9 }% B% J& d0 K                .gpio = DA850_USER_LED1,' F; y; F1 @$ u3 i8 K
                .name = "user_led1",
* _& a8 ?) Z1 Z$ [8 `( w. W                .default_trigger = "default-on",9 G) V- e: Z6 `& {% M4 [. {
        },
$ o. M! J, Q6 ]- G4 m* ~        {- x# Y1 K% U5 I9 v; I" p% {8 w
                .active_low = 0,7 s' n+ g# C- B. V( [
                .gpio = DA850_USER_LED2,3 d& t  n6 m: Z0 p- v& L" w
                .name = "user_led2",) z# M8 O; d7 z3 {) H# J8 [
                .default_trigger = "default-on",# Q% A( L8 g5 [/ W# t3 {
        },
5 D* x  ^& T6 `" `0 K        {
# y7 f+ F5 ~) T/ E  l6 \# k0 l' q                .active_low = 0,
! \3 B; ]! b& K% a3 \                .gpio = DA850_USER_LED3,% m) {; ?" ^$ w8 D7 o
                .name = "user_led3",
$ Z) ?8 L4 E& u1 ~                .default_trigger = "default-on",
& A4 Q" P0 ?, z; T! {        }," ~3 U8 G! c/ U/ G8 f
};4 E5 j4 p" y% H0 T' [, [6 x

% {3 l' n! P! }3 c: y) v  `$ zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  G  ?! w2 G3 m, L        .leds = da850_evm_tl_leds,  d7 G! `3 v) q: Q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& N) Z: c! c& y# D2 m; u: {  r
};% D4 k. Z6 f7 c/ D" m- \9 v7 |

% x  w0 I+ r" ]4 M7 W; I4 Qstatic void led_dev_release(struct device *dev)
! j) g+ r* d7 `# a' D' f3 T{
# J# j; g7 `% U- J, Q};- Z7 X+ I2 q4 @1 L" O5 f

( \  g7 k; S" b5 p/ Q) Qstatic struct platform_device da850_evm_tl_leds_device = {* [" A7 r$ a" j
        .name                = "leds-gpio",
5 l' @  |, \( B  [( k7 R4 M3 ]        .id                = 1,+ N( p: h7 _  _% X3 i, K1 s
        .dev = {
0 q, [' H: X5 Q6 }# c( }                .platform_data = &da850_evm_tl_leds_pdata,
9 L7 k7 H4 a" {3 Y. F: F                .release = led_dev_release,2 ]& W+ T/ X- g1 Q+ r+ J) s6 v
        }) T' Y3 ?2 W# b% h4 n
};9 O0 F0 v6 |" @8 S
5 ^' A4 p7 N7 V4 g, Z
static int __init led_platform_init(void)# C8 I4 Y( a8 n& o! O7 ~$ m
{" X' a" _; q5 d  v0 g3 x$ ^) \5 B9 i
        int ret;
: o  d1 I  U' j# f: Q) t* K0 ~#if 0
5 P* G# ]1 Z# f+ m. j        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" p& ~3 `7 v) J& _3 j  R5 D9 L# }4 I
        if (ret)4 e' J* q: q. p7 P$ t
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! E' W! g6 V2 r1 H9 i. f, k. [. q
                                "%d\n", ret);
  E  K9 T% H- c4 v#endif
. B; j1 ]% z% e        ret = platform_device_register(&da850_evm_tl_leds_device);
) \# }: k1 l2 j# \; X# y4 }( }        if (ret)' e  f# E1 T' s
                pr_warning("Could not register som GPIO expander LEDS");
; @! U* r% v8 t% m4 X1 X& X        else
. s# L: E. K0 l  O' R, g1 d, j0 X: w                printk(KERN_INFO "LED register sucessful!\n");
6 y4 y5 }( T, [& J
  _5 ]* K' q1 ?$ \0 `1 Z        return ret;- X* ^3 \3 N3 ~. P1 E
}9 o# L5 h2 H6 z9 {) M+ l- r
+ c9 `  ]. ^0 R& j- i% b! V
static void __exit led_platform_exit(void)7 {8 A" S5 R8 e, i6 r; z6 H
{
. o. F' [( m# ]4 j        platform_device_unregister(&da850_evm_tl_leds_device);
0 m6 Z8 G  S& T8 c0 \& w# `1 P/ p2 X4 J- S2 E) u
        printk(KERN_INFO "LED unregister!\n");7 K7 t' x& q6 F4 R. J
}
% h' A- f. ~+ g' [2 k
% d& l0 ~& M9 x: \module_init(led_platform_init);% k# F. C- A7 F& Y# a
module_exit(led_platform_exit);
- v5 f% w% j% h$ a$ j% E9 i3 q  p5 z, _8 O" {- s
MODULE_DESCRIPTION("Led platform driver");
  y8 E6 R, ^5 _& K8 @) G+ PMODULE_AUTHOR("Tronlong");% N/ F/ C7 z8 q1 _
MODULE_LICENSE("GPL");
9 ~1 k- u' y1 k1 r' y& j- F" l6 l) D, O9 w( \2 U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-24 09:11 , Processed in 0.039198 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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