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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。7 |# b" |, {# J6 W1 x
#include <linux/init.h>* D+ Y3 C* n7 a
#include <linux/module.h>
4 S, X, h. x& M#include <linux/kernel.h>4 D6 i1 z  [4 Q1 M8 ^
#include <linux/types.h>
* P8 E& A5 y! f#include <linux/gpio.h>& i' p* |: `# v  [5 A
#include <linux/leds.h>
; n! i9 F3 k2 [" e#include <linux/platform_device.h>
8 C! z3 W2 D6 l/ u, V" R% i  q' w, J) U( p! I0 A7 Q/ n; i
#include <asm/mach-types.h>% B3 K# ]9 V; k$ o: i0 T; M; _
#include <asm/mach/arch.h>
' Z& A( f% q/ i" U, G0 `#include <mach/da8xx.h>
! s9 L: U+ h1 ?- Y2 ?3 i5 |9 n#include <mach/mux.h>; g; u2 W* E/ p& g2 {$ L
. V9 B, ^3 N2 e  X. t! [: w$ F
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, X$ j5 v3 _2 Y0 e( D#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ x6 K( o4 h9 D* y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- y- p! S9 B$ h+ u  \% |& F
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( P, S. o0 d3 Q$ G
( w; s! C: Q+ X# ?- C+ j- O/* assign the tl som board LED-GPIOs*/
& o! j1 q" s* P- C2 ?: U5 dstatic const short da850_evm_tl_user_led_pins[] = {
( n* d: y. p/ A        /* These pins are definition at <mach/mux.h> file */
$ t2 R' i9 X. Y        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 v7 D0 }7 V$ }1 C8 D6 T$ K
        -1
0 E0 t- l4 ]: K1 p; b};
  g% w; K" \' I: f
/ w. w6 [( J& F# }% I) e) Qstatic struct gpio_led da850_evm_tl_leds[] = {# A& G' }) X' V
        {6 L* F, m* j+ [8 K$ j) L" S0 n
                .active_low = 0,) ]! @* f! I( X, ~/ I) B
                .gpio = DA850_USER_LED0,8 T- ^; d1 o. J; c: _+ n# _
                .name = "user_led0"," w2 G; o+ L7 t6 F& j- b, G7 e
                .default_trigger = "default-on"," L; @, S: a  R( N, d- j0 [
        },' {2 w& t! H  r9 [1 l
        {
6 k9 m9 l0 i% h. X2 i" L                .active_low = 0,
7 h* s' N4 X" b4 X$ y& r7 m                .gpio = DA850_USER_LED1,
- y, q" z: c; K2 G8 K: R                .name = "user_led1",! \2 E& l% c+ S
                .default_trigger = "default-on",
4 }9 ?0 A# P8 G4 C0 {        },! b- X2 R: _; U$ w! B, A5 S
        {( z; d- a. A3 l* Q0 e5 W
                .active_low = 0,+ @7 S9 }' Y# S9 }! x, }& w$ @$ d
                .gpio = DA850_USER_LED2,) }. \$ u0 a3 L; L3 |$ ^
                .name = "user_led2",2 m. X6 O2 ~0 b- K! s
                .default_trigger = "default-on",1 t4 X& V& G0 S% u* j, |% b" k
        },
( E& u: n, @5 [; |+ X7 D        {1 S: u" Y# i* U8 Z
                .active_low = 0,
' a6 b$ N+ l- _3 v                .gpio = DA850_USER_LED3,  c9 M, [% j! E
                .name = "user_led3",
$ b+ S5 K. Q6 r) g# M9 F2 H                .default_trigger = "default-on",
4 f& o8 ]! C+ D. G        },5 F" \' P/ A: W7 }6 V5 t- o; z6 A
};
* V2 q; [: L6 z" {& Z2 ~4 ^9 O6 y& Q( ^
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" @: k3 s9 l! `2 X! y* b) B# ~& H
        .leds = da850_evm_tl_leds,
1 d+ U( E# b  O4 f! [        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) A6 f8 z" R6 O& u
};2 ^$ ?! a$ J, K+ L3 ~
, o3 ~0 r' ^; p3 ~& g
static void led_dev_release(struct device *dev)6 J. f/ ?" {; J9 J
{
) ^* g7 u8 [2 I& L- _};& w% ]" p; |$ |

1 \3 p/ \2 w: Dstatic struct platform_device da850_evm_tl_leds_device = {/ F) q6 C- r, E+ g, j) M  e7 \
        .name                = "leds-gpio",1 p( l% z3 G) |# w& _
        .id                = 1,6 @. [# h5 k4 R( w. _0 Q7 z
        .dev = {
3 B$ a' Z4 C2 y: s) H! @                .platform_data = &da850_evm_tl_leds_pdata,
  m2 K# O" _0 m; Z; S/ Y+ m                .release = led_dev_release,
: M9 R3 F4 T# a        }% y5 i7 C( S2 ^0 i9 B% Y, P
};) X8 U& x8 b* v$ [5 Z) a8 d

7 M9 ?/ _1 q( W+ h- X$ z6 v- y9 lstatic int __init led_platform_init(void)
# ~% H' _! b9 W( F{
, j3 K  Q; j( P2 t/ o, O( w- b        int ret;5 b4 G7 p3 d/ w- L+ N- Q
#if 0$ w- \  q: |7 v7 q: r) G8 |$ O5 y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);/ k9 B$ d% K0 A* R
        if (ret)4 [! i" l- c5 G7 F) P. J6 X
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ D& k% O0 ?, B- K2 `/ o. {! s5 K
                                "%d\n", ret);! p( H- @; \' A& F" b* J
#endif2 r2 q; ], o  o* T
        ret = platform_device_register(&da850_evm_tl_leds_device);. q$ W" i( g9 S. h, c
        if (ret)- D: l5 A; K) m! _
                pr_warning("Could not register som GPIO expander LEDS");
6 O. x4 a5 R( K( A7 [6 z) g7 L5 S        else
3 H( y( H9 o  P& H( W  z) k                printk(KERN_INFO "LED register sucessful!\n");
. N7 ]# s! R. {2 ^( q( ~( p# `. j6 {6 J7 L
        return ret;% |# j: P; L) v
}
, ?' N/ q2 b2 F  z6 J  K; i$ s. e1 ^  C
static void __exit led_platform_exit(void)8 P0 G; d' ^3 u" {9 t$ @
{
' M, @' R5 b3 Y+ T0 O3 n. F$ O7 y  L        platform_device_unregister(&da850_evm_tl_leds_device);
, h9 t6 n5 {) a4 ^4 L9 ^) @2 X0 G1 n0 }/ M) R
        printk(KERN_INFO "LED unregister!\n");+ Q( H* v6 M2 @- z- S, b; x
}: I  S5 [! r" O
" b4 [6 w- S, ?3 ^! y
module_init(led_platform_init);/ i. j* v$ |: S" K) a! P
module_exit(led_platform_exit);
% ^! A, I" D$ A+ N  j0 h
3 g: X7 G( w( SMODULE_DESCRIPTION("Led platform driver");  k5 T9 b: Q0 J: c( X& R# k$ m+ V
MODULE_AUTHOR("Tronlong");6 x* g! c0 e4 O5 d
MODULE_LICENSE("GPL");4 J$ {. @) v! V9 T! H; x+ B1 ^
( ]5 Y( S, E' f5 [" E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-15 02:01 , Processed in 0.116967 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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