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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! l: k& A9 V7 }: S#include <linux/init.h>) V0 G! K3 T. h
#include <linux/module.h>
- M8 V1 \* T1 u9 }#include <linux/kernel.h>1 r1 J1 ^. b$ N* {$ q7 t0 s
#include <linux/types.h>7 V- P& h; d- T& h% j5 }, x8 S) U
#include <linux/gpio.h>
( ^5 `5 u8 L: X. g#include <linux/leds.h>
. a4 N$ X% |* }" ]0 }+ y#include <linux/platform_device.h>
( H0 _9 V6 q0 o
" W  N+ I3 b7 P$ b  `; j#include <asm/mach-types.h>1 `8 i4 z1 e; G& H* @8 u
#include <asm/mach/arch.h>
( D, N: C, B1 s) q#include <mach/da8xx.h>
; R8 Q0 ^1 }0 i3 C. h#include <mach/mux.h>
1 l6 U) S" y, S$ d0 _$ ~9 P6 E$ @4 x( R( n% b
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. a0 K- u# \4 x: S2 A#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" i0 y' f4 }% }8 b( L
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, Q; i6 S1 p) W#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 n. q. z2 I' \( {6 e( g; v* Q# r) ?4 ?
/* assign the tl som board LED-GPIOs*/
# {( e3 @& S2 P- |static const short da850_evm_tl_user_led_pins[] = {
1 ?: k2 Y+ e+ Q% X3 x4 c        /* These pins are definition at <mach/mux.h> file */
$ F3 }* x9 ~' y" z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,& g9 m7 f' X0 R3 R
        -1
  [6 ^9 s8 ]; \0 L# J, ?};/ ]" \$ U: O7 x  \+ Y$ ]

0 p6 y+ _" m- \( `! ~- R6 G% [9 Fstatic struct gpio_led da850_evm_tl_leds[] = {! z& S% \$ A9 X  s- ]# g
        {
+ J& X( O1 Y0 z; f) F: Y% y                .active_low = 0," ^" l; i1 M( z& s5 N
                .gpio = DA850_USER_LED0,
" S' P* o  U8 X# F) M7 f4 D                .name = "user_led0",2 \9 h% L; n7 M/ I; Z( m- V  C
                .default_trigger = "default-on",
% W3 T& Q& |. I8 Y        },3 d* {# Y. i& h' M& }
        {9 q  j  ~1 d9 Y1 W! q, L5 x* d  [
                .active_low = 0,; I( G  s# P/ X( K9 L
                .gpio = DA850_USER_LED1,
+ v5 t" i1 K8 d# n6 u& [                .name = "user_led1",  S  \0 Z8 F( ?( F$ W+ _/ C4 z1 T
                .default_trigger = "default-on",
1 ?% ~9 J$ I- x% _+ ?% M4 {; i        },' z" x6 ^! o0 k$ i- O9 y; g0 _
        {
+ S7 ^+ G( |7 Y                .active_low = 0,
  i$ v6 Y% _( o! q' a                .gpio = DA850_USER_LED2,
" r3 F! G; q5 K1 E* D" W8 W; H  X                .name = "user_led2",
* p3 j  E5 O5 o4 z- A  {* h* O                .default_trigger = "default-on",
1 p* O  K" c1 I        },* O0 l, U4 I! ]" k) o- ]
        {
2 G/ x' X5 ?% `8 p                .active_low = 0,: X1 b' \! z$ x' S
                .gpio = DA850_USER_LED3,' K! {; t& I: I( v( b
                .name = "user_led3",
+ ~9 F0 V, X6 W4 T                .default_trigger = "default-on",* t9 P4 S$ l, l9 o2 O- q5 G
        },/ k+ L; _) D% {6 l
};
2 Z  L( p% g( N
6 z' h6 L/ d, o, z; D8 n7 Jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 Z7 p- _- K7 p! \0 U
        .leds = da850_evm_tl_leds,
; }' s' D; l2 h) x8 n7 u        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% c8 A5 J% l( m- j. ~6 ^};
6 b: u" {6 `+ z! P- x
5 u; C$ t. {! R" c3 B; cstatic void led_dev_release(struct device *dev)
" N/ L6 r) Z. x* P9 b+ Y{
1 b, w3 m7 p7 ^/ h  I2 @7 d};7 m6 M( ?% Y# X. L2 X" ?: J5 _2 p- G
! X$ U' H3 R0 R% W6 g0 K, M9 y
static struct platform_device da850_evm_tl_leds_device = {
* }8 r$ P. W; f& H        .name                = "leds-gpio",
7 Y+ U+ F2 m! `' j3 P        .id                = 1,; i8 q; w- ?/ C  ]9 s) O2 p
        .dev = {0 j. ]  T$ ]( d/ q& C0 }! w5 _3 E
                .platform_data = &da850_evm_tl_leds_pdata,' T7 [/ g% W. P; J* n. f" a, {
                .release = led_dev_release,
# ]; _' N) [; ], j' {        }
0 T' R9 O+ @3 ]5 B$ |& r: k9 F};) E8 J  w) f" p: {/ k' V: n' S
* S* T! E/ V' ?3 O+ [
static int __init led_platform_init(void)
; a! H, w$ b8 c7 Y5 z: m  \{$ P2 L* x+ C: e: C1 K6 e
        int ret;
7 `) s( m3 h5 m3 p7 R- R# n( v#if 0
# {0 I6 T. G5 t. s        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- U, j- a" L9 k+ q" Y. `        if (ret)
- P) _/ u# Z' @: K  w9 _                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 ?- R' k- l$ w  q; f8 [
                                "%d\n", ret);
) r. P0 o; j/ u7 @#endif
4 h' F4 `* e# c7 U        ret = platform_device_register(&da850_evm_tl_leds_device);
) q6 o8 C$ d- J& w; l1 ^0 H        if (ret)5 q2 f3 j% c; L
                pr_warning("Could not register som GPIO expander LEDS");9 ?4 |8 c- C6 E$ z
        else
& y  M1 @. n8 R2 u                printk(KERN_INFO "LED register sucessful!\n");
6 s- ?# M7 H; A, Y# D' f3 s! N5 q3 \8 g# `; ?# L5 t
        return ret;  x( L! T2 Y. F
}: b, t" B; @$ @4 m: d+ i! z3 B
& s* y5 k+ g2 A  f! P
static void __exit led_platform_exit(void)3 v5 v* P, s8 w- k; |. {* E
{/ w5 S" I  x- _
        platform_device_unregister(&da850_evm_tl_leds_device);
* |5 L3 F9 ^4 z& w7 X7 Q
* ]  f) ~( P9 Q% ]        printk(KERN_INFO "LED unregister!\n");
% Z/ ?6 X1 e. ~9 u# j8 |}% v3 F% p5 D" O0 D2 |
/ V+ U, R- N0 p/ j" y
module_init(led_platform_init);
! K# A$ B1 _: i  I! i. ~- pmodule_exit(led_platform_exit);: i- x# r7 Q/ L8 _
1 U' {4 A0 W: u. j1 ~& {
MODULE_DESCRIPTION("Led platform driver");. {: k5 d  ?1 }+ @; f0 b- @0 _4 Y
MODULE_AUTHOR("Tronlong");7 {5 w* H7 n. Q$ v# y" M. K- u
MODULE_LICENSE("GPL");- L, Q) ?: m) G) T" [" p9 Y$ e$ b# [

3 E! s  o  C% {  T% [, s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-20 21:41 , Processed in 0.040396 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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