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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* @1 @0 |1 n( ]4 \% C- o& \#include <linux/init.h>
6 r# L7 \. f% O' l: q- `' f#include <linux/module.h>6 D) O, k6 D& {9 j
#include <linux/kernel.h>
) d+ E% R7 V: x#include <linux/types.h>1 h$ r' E4 e* }2 u
#include <linux/gpio.h>3 Z/ ^$ w! \, L* k! ?
#include <linux/leds.h>0 _1 ]& K: }7 A2 x4 K
#include <linux/platform_device.h>3 ]' N2 f! S% V2 @! y  ?& f
6 C" U# o8 s' B8 |) o
#include <asm/mach-types.h>
7 |, m! A+ F; F; ]#include <asm/mach/arch.h>
. ^/ }% a& ^6 N4 E3 b#include <mach/da8xx.h>
( E, k2 p8 M; j' y5 }#include <mach/mux.h>% s, G9 t4 @# B. j  `* Z. t

7 o7 q3 H* k# t& U) G#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' @) X/ _+ L6 Z3 N0 t3 r+ {4 R
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; Y3 F2 _8 P& e4 C/ O! D4 {( ]9 O#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 f3 o9 o! V, ^% l7 v/ y+ Z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 f/ b6 n4 A9 R+ _5 Z

2 {' |& f) a3 B( f1 z, @7 O/* assign the tl som board LED-GPIOs*/) D! v8 X* R: z. D/ u% @4 g
static const short da850_evm_tl_user_led_pins[] = {
# b- \" J4 r' ^4 A& K        /* These pins are definition at <mach/mux.h> file */+ R& S  A0 X1 L6 r5 E; x2 n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 V* A# l! e7 {' O2 M) h
        -1
4 E! |! E4 `0 A. e3 E; o};
& p8 b' G9 i- F4 M6 v1 X; {, T
' q8 C; ^7 P, {3 J/ astatic struct gpio_led da850_evm_tl_leds[] = {
$ a- ]2 ~2 x8 o        {
( N  H& i! g6 d3 n, v  e                .active_low = 0,
% Z, L4 I4 I5 t( u: F% e                .gpio = DA850_USER_LED0,6 |- D% n0 K3 a$ `( @; Y3 f% i: P; U
                .name = "user_led0",
. u9 ~. N2 p6 q                .default_trigger = "default-on",
; M  F' R. J; ]; l5 S2 U  U        },2 Y) @: P$ g# t7 \* O
        {
: d3 |" S+ H: q5 e                .active_low = 0,
9 t3 M. }: ~! k. |                .gpio = DA850_USER_LED1,$ t9 e6 r* O6 l
                .name = "user_led1"," C& t3 w/ n! T9 \8 `3 C
                .default_trigger = "default-on",
. ~9 g, Z, p" e# p/ H        },# f9 @4 |( u9 e/ G
        {
6 l+ B; `" X- w, Y! t; ]3 e8 F* ?                .active_low = 0,
7 I5 R' Y# q. M7 y, W" P/ b. u% X# b" [                .gpio = DA850_USER_LED2,+ V% o$ ~6 \- N7 ]
                .name = "user_led2",
3 \) m. q- L, r. M& Q) y* F8 S; b                .default_trigger = "default-on",
7 m  w( Z$ k% q( r& B  p/ e- q& c        },
$ _& I* D& D$ Z: L: E        {) ~; [; W) Q0 j
                .active_low = 0,7 s- E( i' V5 ?8 j7 ~! `
                .gpio = DA850_USER_LED3,4 t; X' l5 u9 ?8 {! ~. E
                .name = "user_led3",' a. F, c2 W" q* N; N+ F
                .default_trigger = "default-on",
, [; k6 Z3 s/ @3 X        },
2 }/ p7 V# b9 E, ?* n};, A, P0 v# x; T# T6 m6 h

. S* k+ d* A$ x0 F3 ?static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 e) l* @  d- [' j
        .leds = da850_evm_tl_leds,
7 \3 |) }  ~$ ^7 q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  h9 k8 R, v4 G* M  O1 ^: s
};8 z5 c/ ~5 B( _/ Z+ j

9 k$ T9 l$ g% f4 ~; I7 S0 ostatic void led_dev_release(struct device *dev)& K6 z9 A. F% O" c4 \
{
. r2 N  F* l6 V6 X* w1 X+ w};
" ?. v( ?; N& k5 {3 [9 @" p7 W( U, ?  m* C9 Z- E
static struct platform_device da850_evm_tl_leds_device = {6 p3 Q" W; H9 [3 N4 W" \
        .name                = "leds-gpio",
8 O6 K1 M* K8 c9 b* L/ {* Y3 b        .id                = 1,6 w. Z& n8 ?0 {  [6 B3 L7 }; K6 x* I
        .dev = {
$ [- ^' ~" F: `, d) _# k                .platform_data = &da850_evm_tl_leds_pdata,
! z& r. u) v( s; k; m  C/ G                .release = led_dev_release,6 D' W" p. @9 b% {, l
        }
% L+ |9 e5 q& m* C8 {; ^6 ~6 y7 j};0 u; B3 z8 i3 r9 b: Z+ \& v' F/ |
& u- W8 a# L" K; q; ~9 M: v" N: U
static int __init led_platform_init(void)6 I5 U) k( ?. K5 t( e
{( d$ D1 P/ z6 e8 P; a
        int ret;
! I! Y: H2 l% T5 q#if 0
0 h4 r. k$ k3 v( J        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* T2 Q1 Y  F. r, s# _; D
        if (ret)! q4 Q8 M$ ?; @# [
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
( [9 u- ~4 w2 u; r$ U5 V& ], a                                "%d\n", ret);
2 L& g6 `2 r% u/ S+ ]3 }8 v5 y9 s#endif5 ?# m5 ~1 _! A5 ~7 u8 ^* R
        ret = platform_device_register(&da850_evm_tl_leds_device);
/ ?5 D* U* |2 h        if (ret)$ c8 o; B$ M  n+ B
                pr_warning("Could not register som GPIO expander LEDS");
, ?' T* I9 W2 k. @7 a  x        else
1 n$ Z/ Y* e1 a5 M) o                printk(KERN_INFO "LED register sucessful!\n");5 {6 N5 w4 @% J6 J" d/ k0 f! _
' C/ |3 B2 ]2 M' A
        return ret;/ E  t' z/ h- Q
}
2 S& v# s2 q) c3 p& ^0 L8 o4 W4 g. ]" Z/ c
static void __exit led_platform_exit(void)
4 _  Q6 ^+ @5 M9 Z2 \; x{. f; L8 g  l3 a& h5 p3 W
        platform_device_unregister(&da850_evm_tl_leds_device);
! e7 Z0 u% J: \- y2 c& i' p: d0 @7 O+ s7 o% I( |
        printk(KERN_INFO "LED unregister!\n");1 ~7 g7 P' |; H8 v" w5 H  v
}$ a5 Y* e& C' H( y. p  Y

% K, c! M0 R3 j6 [$ t# Dmodule_init(led_platform_init);
( }7 S7 r! W& F1 V* v; jmodule_exit(led_platform_exit);
8 U& u. l% ~% R# y5 D
7 Z+ K. b7 ]! N' ?! AMODULE_DESCRIPTION("Led platform driver");  z& ?/ b6 Q8 i$ o( B% r  A* d0 S* V
MODULE_AUTHOR("Tronlong");, f1 y$ n" C: Z. [; R. J3 W6 a
MODULE_LICENSE("GPL");- \' F; j+ e8 d/ z
4 e8 l! u0 u3 l0 |# i- B/ h3 J" F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-4 08:38 , Processed in 0.041576 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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