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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- M- O  |5 a% N2 E/ I, }8 x#include <linux/init.h>
0 `( u5 m" _6 z, ~5 M#include <linux/module.h>' v4 W8 W3 n- R8 H9 p
#include <linux/kernel.h>) w! f/ i# E9 n, a0 _: Z0 O# S1 x
#include <linux/types.h>9 n) g4 c+ r* d
#include <linux/gpio.h>
$ ]: Z+ M0 Z  i( V#include <linux/leds.h>6 s1 L% S( m# b: |' O8 i) O# K. F
#include <linux/platform_device.h>
4 g( D  F* z  M9 B$ ~" ~/ l# X
% x9 r9 V7 @, c6 [; M0 e#include <asm/mach-types.h>" l) `  g& S$ w. l
#include <asm/mach/arch.h>
9 z" u& m" F" T2 L$ I#include <mach/da8xx.h>
: N( @, P3 r# o/ Z#include <mach/mux.h>
* |* z# ~# u9 p) Z5 e+ O0 y5 d/ y6 U: ]) N: ^; K
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 F! Q  R8 N$ t; F- P; }
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): ]) F* [, L, H  H
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 T( @# e3 K6 N0 p#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! l! M  }  F" o7 |4 C0 g
( ~9 r0 G  T/ z  c  `
/* assign the tl som board LED-GPIOs*/
% ^/ @8 y2 q* Z( X( {6 W* estatic const short da850_evm_tl_user_led_pins[] = {
" A; k' O. g4 x6 V0 ?+ y+ D        /* These pins are definition at <mach/mux.h> file */6 ^/ M  }: ]- h) K
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ V9 @5 k. Y! R1 t: \  Q. {0 w
        -1) ~  H0 n# Y4 s. G3 x
};
% M% T1 I% L, {5 O' M, @
& v7 G7 x8 I  Z  W) w8 W4 I% K0 mstatic struct gpio_led da850_evm_tl_leds[] = {
, n8 d' O  \) r( e8 W# c3 Z4 `, C* A        {
3 T3 u" G( R2 j0 E3 _8 n9 w                .active_low = 0,& {! \+ V6 u" O: \  z2 K
                .gpio = DA850_USER_LED0,2 V. V5 x: i7 a7 a$ \, |) F2 J
                .name = "user_led0",$ @9 Q0 N0 o) j+ {) w7 S" e( L2 T# d
                .default_trigger = "default-on",* W/ o% L, \, F  l
        },- r3 P, S- s8 V# o5 `. {
        {
, I! k2 c3 |; V& p! M- |/ L" F                .active_low = 0,
% M. x" v6 a8 B- u                .gpio = DA850_USER_LED1,
7 e/ b2 X' R) d0 a3 _: _# q" D$ M                .name = "user_led1",
4 E, o# r4 U, M. U                .default_trigger = "default-on",
$ ?- A6 R6 z3 a7 i$ F3 o        },
6 ^  _+ v0 ]2 O/ j! T  q$ U' f        {
' k0 L3 H& I- D  Z$ N% O* `                .active_low = 0,$ D8 @7 t1 `. n% V+ W. Z2 s
                .gpio = DA850_USER_LED2,3 |* i8 ?& E  z+ D4 @
                .name = "user_led2",
* {; X' G7 b1 r6 m6 S0 l8 n                .default_trigger = "default-on",) x9 a+ e( o. F* `& r. g# R8 h
        },
; O/ M" M1 ?- k. c1 _        {
& T% j5 N  s' U( h$ O4 n0 F9 U                .active_low = 0,0 |. j) ?( U, n9 b- c  G3 l" x! C- u
                .gpio = DA850_USER_LED3,
: \9 C% s  o) d# h0 [+ m6 z: X% u                .name = "user_led3",
6 w" \! u& y0 H) Y; z, |  \                .default_trigger = "default-on",9 n! u% y" g" L
        },& C4 ]5 t5 C2 Z- b8 ^' Y, |: C6 D" D
};8 J$ D/ O; n2 ]3 E, n! [+ |
. ^& D' z- @; T: o1 g
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. W; v, N9 p/ F/ d" c7 B
        .leds = da850_evm_tl_leds,& G8 E$ Y; f( r  A( ]" r3 }
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 s# ]; @0 V7 r
};
3 Z1 o1 G. f9 z+ t& z$ U
" q. ^! l% r8 b$ z  p  estatic void led_dev_release(struct device *dev)
& x, z# A0 ^( n. H0 u. m{: I& s: P" \5 f( ]5 [
};
9 |5 g8 h" R/ l& v: k
- w! Z% v# `1 p1 ?" Ustatic struct platform_device da850_evm_tl_leds_device = {
4 L+ ?0 M4 _; X8 \/ i( |5 z        .name                = "leds-gpio",
' w  B; F) U+ _7 @# Q, Z        .id                = 1,5 K& J: K$ f8 ~- v: m
        .dev = {9 B/ |! ?& ]2 z. d
                .platform_data = &da850_evm_tl_leds_pdata,
, E1 G! y+ ^% I) ]6 p- d2 D( s. ^                .release = led_dev_release,
: E6 D: u- X7 y; W        }
3 o9 ]2 s8 G& x};
& F, w' Z8 [( K0 c' ?8 W( g6 p  W% q2 @
static int __init led_platform_init(void)1 X7 l4 _# ^& \3 E
{
7 |; t4 `2 ?- t0 K        int ret;
7 g$ w1 p; `) t7 J3 {/ P# B#if 0
. X. S/ p  I! O7 [0 K6 Z        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* }7 `& K! d/ B# g        if (ret). l& v$ W( O5 j) K+ m$ {: G
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  B' c, a  k% s/ O$ `& \
                                "%d\n", ret);
2 \2 ^7 Q$ O7 x#endif
+ N/ J0 |: o% ^5 R$ Z) p8 l  ~        ret = platform_device_register(&da850_evm_tl_leds_device);- d! }6 y: f6 ^5 G
        if (ret)$ \! A7 P- J$ m4 g: \
                pr_warning("Could not register som GPIO expander LEDS");
0 m, Q* Q2 j  @9 F; q        else
5 @7 f" v% G# n# ]6 k" d& J1 b! M% ?                printk(KERN_INFO "LED register sucessful!\n");
! V4 {5 b8 C; a, P: }" m0 S! w, t4 w& n; }1 A2 m
        return ret;
* ]2 y* [, t  ?5 a) m}2 N4 G- B6 c# z" ?+ ~: v, v
  m' \6 ?* D% \9 K) P8 \
static void __exit led_platform_exit(void)
6 ?! R; a. o7 Z' @2 L1 x% v; D8 q* @' j{1 I: n+ V& _% s
        platform_device_unregister(&da850_evm_tl_leds_device);
8 V) y. F6 x+ \3 V: C7 x1 {  W& s3 ]" F1 X  n
        printk(KERN_INFO "LED unregister!\n");
$ y" n+ k( n# o+ x  o}4 L/ O& y: ^0 ]$ a, T9 X

  b+ C: g. m$ Q2 Pmodule_init(led_platform_init);
9 @  Y+ T$ A2 ?4 ]$ Imodule_exit(led_platform_exit);/ w! p2 d/ _- N: w0 t
; c  F6 m' U. N9 i1 Q
MODULE_DESCRIPTION("Led platform driver");
% t  g2 D7 o7 Y9 g, D- PMODULE_AUTHOR("Tronlong");7 I4 }" @0 w* @0 x, }% p
MODULE_LICENSE("GPL");
3 C1 c9 z" V% W) M* ~/ \; \+ h$ n6 j8 [& p0 I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-26 16:59 , Processed in 0.042425 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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