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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 o3 ^5 j7 e- L. v1 ?- S$ F" g5 z# P#include <linux/init.h>
5 m  r+ ^4 q! z; o) e9 q2 H#include <linux/module.h>
1 k" j# j: W3 E9 H#include <linux/kernel.h>8 H" Q$ ?7 b9 Y! K0 I4 S
#include <linux/types.h>
$ B0 d5 Q3 o' S' h7 w6 p#include <linux/gpio.h>. O$ t! I1 L& [# |6 {- a$ r# d+ [
#include <linux/leds.h>8 @4 U5 s) \; f, n/ k  j, H
#include <linux/platform_device.h>; e( m" [( o: O/ x) R; `2 Z1 m

+ C7 ]1 x6 j' S1 D#include <asm/mach-types.h>) i- w! J7 |. {7 h
#include <asm/mach/arch.h>
, ?. c+ v0 i, T& Y5 U6 K#include <mach/da8xx.h>
& y3 p' T$ z: _2 P+ G#include <mach/mux.h>
: R- H! `* k2 n( S) \* `6 H
" ?& V1 G+ y7 e#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 r+ z* |2 `! T' r$ A  s! }! _#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  ^: u- F6 [' G#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( J" g& q5 u7 J. h/ D3 |6 V1 U& g#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 Q+ o  S4 C9 i1 L
- I' h  e- f7 m7 L2 g
/* assign the tl som board LED-GPIOs*/& T, s" Q: L4 z$ \5 z% t7 t2 i
static const short da850_evm_tl_user_led_pins[] = {2 L# @" l5 X- `& A+ Z  m6 n
        /* These pins are definition at <mach/mux.h> file */% M9 _& d" |' @0 W: p1 B
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,# K% I; ^! H3 \7 W$ ~* m
        -1
7 J) o! p1 A# c6 q. [};( D% o1 O6 D1 y$ F4 i
# H% ^$ D5 c9 p1 V1 M' m7 {
static struct gpio_led da850_evm_tl_leds[] = {* W3 f) J2 O, \
        {
) N' d. ?, w! R; @6 H8 `* q4 h! L7 i                .active_low = 0,* d& w3 a3 g3 h" a& a
                .gpio = DA850_USER_LED0,
% r6 ^6 p# N% V) M                .name = "user_led0",
1 r! O& x% |$ H5 L! d- F                .default_trigger = "default-on",
6 p9 q% R, C6 L. j$ P9 U$ p        },
9 P8 \- w" z. N+ G8 I4 S7 _6 v0 I        {
& C' |4 W- N6 V" u/ H                .active_low = 0,
3 R% F- T9 h8 {9 X                .gpio = DA850_USER_LED1,
8 G2 b( f' f/ W  D3 {7 f+ H                .name = "user_led1",
2 }# q; d" d8 z+ l- ?                .default_trigger = "default-on",  a, Z# Q9 D: G; Q
        },
& @+ c* u+ @0 j: c. {! n/ p: H& x  q        {
& d9 A6 x" O) T( ^6 ]7 T/ P                .active_low = 0,2 D9 z1 j6 T, E3 t% j3 L
                .gpio = DA850_USER_LED2,) j! E- h# D; x4 j5 H5 ]
                .name = "user_led2",
0 t3 |0 b$ V# O( m( M; o5 `9 S/ f                .default_trigger = "default-on",
! C: ~7 l* @' Q2 k# K        },
( v4 s1 |4 Q+ m        {
. Y. X4 S& s5 }* g0 J& Y; M: F                .active_low = 0,
" c! ^9 F: N, v                .gpio = DA850_USER_LED3,  E- [& x6 L9 j* c4 A+ z
                .name = "user_led3",
* X) Q8 O* u1 k' E; v' i" ?                .default_trigger = "default-on",
5 Y; V" b7 ?: p9 @        },: u& q  L4 }7 n- O; V7 J& L! q' Q
};
9 R" [- z( x( q4 W% X) K" E; l5 b
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. I! M9 h$ U; V7 P, w4 v        .leds = da850_evm_tl_leds,
1 W3 g; x' v5 q, j  R        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! Z8 ?) }0 ^: C/ G- b
};5 b& j: E4 e( g

0 r8 @0 V; W+ i  Y0 F5 t2 Kstatic void led_dev_release(struct device *dev)
7 ]  o: a8 K' W{& Y8 O, r/ @: i8 ~' k
};2 L8 g$ L8 L4 {" j

. O" `. H. K, Q; ^& k6 Estatic struct platform_device da850_evm_tl_leds_device = {) o& Y. ]0 J3 e+ a. o0 ]- W
        .name                = "leds-gpio",6 t. c' w# R, T! I6 a
        .id                = 1,
3 t) o+ d+ X6 Z* |        .dev = {
1 a: e7 G  i. j! v  K* G9 K$ V$ Q$ \                .platform_data = &da850_evm_tl_leds_pdata,
! o9 a" s) W+ }  Y7 `  q                .release = led_dev_release,
2 Q. j- d* P! Y! U        }
# t( ^- \2 @$ g5 [0 L6 ]};
$ t& z2 @+ U; P$ X2 J' ?* W9 U" e- G) `& T7 W, b
static int __init led_platform_init(void)' j; T* U3 m# l( f0 `7 A( [0 t
{
9 H2 D8 D6 R3 L6 l        int ret;
% z0 J) _# H+ h9 k#if 0+ }5 C# h/ ?7 O- _% X7 X
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 _0 T1 O  S1 w* y9 R! f" h
        if (ret)
! \; C: P* f5 b3 l' q& [                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% [) o9 M1 T# i$ Q4 {
                                "%d\n", ret);
) P- N6 g: ~, Y% h/ q0 K( _: Y#endif
, ^( C7 ^3 s/ H9 }  j$ E- Y        ret = platform_device_register(&da850_evm_tl_leds_device);$ G& V" u& R5 l8 t9 b) s1 _
        if (ret)/ i6 u; i; I1 o9 M' d; Y
                pr_warning("Could not register som GPIO expander LEDS");
- m+ f' G: _, _+ P" f        else
# n6 Z% L& n& D" V( `                printk(KERN_INFO "LED register sucessful!\n");! O9 N$ ^# r5 b: A% a

# i$ X: E7 Y3 O7 _5 r        return ret;8 I- y& E* e$ d
}
0 Y9 [! ]& a9 [6 l, V
& g$ v  y2 O# O% f- L2 Q% `8 R" istatic void __exit led_platform_exit(void)7 \. E( F* u7 R: c0 ^% g& f# [
{
7 b3 X( _: D$ @2 y, n+ I' L1 V        platform_device_unregister(&da850_evm_tl_leds_device);
+ z5 g9 }6 ]& G7 F2 S1 C2 {; F) U# P3 a5 s6 e
        printk(KERN_INFO "LED unregister!\n");
$ Z: P7 }+ |( n7 Q) J  E}
( a) M8 A. \: I1 c# p! n3 B6 G  c/ v$ {
module_init(led_platform_init);
# p, c% n* h3 [module_exit(led_platform_exit);, v/ q7 x4 p/ Z% O

3 p- i' ?' F" LMODULE_DESCRIPTION("Led platform driver");
( u* h8 e/ J. y/ j2 z9 EMODULE_AUTHOR("Tronlong");& F0 C# \* A0 q* q3 D' k
MODULE_LICENSE("GPL");, w5 o! O1 e- ?( a1 m! |
# e8 M1 P* Z  B0 F; u6 `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-28 19:33 , Processed in 0.039768 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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